diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss index 89ff168c..b7ce89d1 100644 --- a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss +++ b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss @@ -269,7 +269,7 @@ sourceRect (new Rectangle (/ jig.xy.x ros) (/ jig.xy.y ros) (/ jig.wh.x ros) (/ jig.wh.y ros))] (whenLet [origin (dictGet (the Map save.data.storedOrigins) i)] (s.origin.set origin.x origin.y)) - (set s.animation.frameIndex (Std.int (/ angle 90))) + (set s.angle angle) (set s.priorityID i) (setNth spriteGrid jig.row jig.col s) (setNth indexGrid jig.row jig.col i) @@ -311,7 +311,7 @@ (FlxSpriteUtil.alphaMask s source.pixels mask.pixels) **(#when debug (kiss_flixel.SpriteTools.writeOnSprite "$i" 32 s (object x (Percent 0.5) y (Percent 0.5)) FlxColor.RED)) - (source.loadRotatedGraphic source.pixels 4) + (s.loadRotatedGraphic s.pixels 4) (set s.cameras [pieceCamera]) diff --git a/projects/kiss-flixel/src/kiss_flixel/KissExtendedSprite.hx b/projects/kiss-flixel/src/kiss_flixel/KissExtendedSprite.hx index e1b4b24b..dfe5bd5c 100644 --- a/projects/kiss-flixel/src/kiss_flixel/KissExtendedSprite.hx +++ b/projects/kiss-flixel/src/kiss_flixel/KissExtendedSprite.hx @@ -32,21 +32,19 @@ class KissExtendedSprite extends flixel.addons.display.FlxExtendedSprite { } function _rot(s:KissExtendedSprite, deg) { var angle = (s.angle + deg) % 360; - if (angle % s.bakedRotationAngle == 0) { - s.animation.frameIndex = Std.int(angle / s.bakedRotationAngle); - } else { - s.angle = angle; + s.angle = angle; + if (s != this) { + var thisCenter = new FlxPoint(x + origin.x, y + origin.y); + var sCenter = new FlxPoint(s.x + s.origin.x, s.y + s.origin.y); + var offset = sCenter.subtractPoint(thisCenter); + s.origin.subtractPoint(offset); + //var newPosition = s.getScreenPosition(s.cameras[0]); } } _rot(this, deg); for (c in connectedSprites) { if (c != this) { _rot(c, deg); - - var thisCenter = new FlxPoint(x + origin.x, y + origin.y); - var cCenter = new FlxPoint(c.x + c.origin.x, c.y + c.origin.y); - var offset = cCenter.subtractPoint(thisCenter); - c.origin.subtractPoint(offset); } } }