fix angle baking
This commit is contained in:
@@ -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<Int,FlxPoint> 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])
|
||||
|
||||
|
@@ -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;
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user