diff --git a/spine-haxe/spine-haxe/spine/Bone.hx b/spine-haxe/spine-haxe/spine/Bone.hx index bc0428228..1b0d326a0 100644 --- a/spine-haxe/spine-haxe/spine/Bone.hx +++ b/spine-haxe/spine-haxe/spine/Bone.hx @@ -173,10 +173,14 @@ class Bone implements Updatable { c = Math.sin(rx) * scaleX; d = Math.sin(ry) * scaleY; case Inherit.noRotationOrReflection: + var sx:Float = 1 / skeleton.scaleX; + var sy:Float = 1 / skeleton.scaleY; + pa *= sx; + pc *= sy; s = pa * pa + pc * pc; var prx:Float = 0; if (s > 0.0001) { - s = Math.abs(pa * pd - pb * pc) / s; + s = Math.abs(pa * pd * sy - pb * sx * pc) / s; pb = pc * s; pd = pa * s; prx = Math.atan2(pc, pa) * MathUtils.radDeg; @@ -280,10 +284,8 @@ class Bone implements Updatable { switch (inherit) { case Inherit.noRotationOrReflection: var s:Float = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); - var sa:Float = pa / skeleton.scaleX; - var sc:Float = pc / skeleton.scaleY; - pb = -sc * s * skeleton.scaleX; - pd = sa * s * skeleton.scaleY; + pb = -pc * skeleton.scaleX * s / skeleton.scaleY; + pd = pa * skeleton.scaleY * s / skeleton.scaleX; pid = 1 / (pa * pd - pb * pc); ia = pd * pid; ib = pb * pid;