diff --git a/spine-as3/spine-as3/src/spine/Bone.as b/spine-as3/spine-as3/src/spine/Bone.as index ce1255b2f..fa1497e96 100644 --- a/spine-as3/spine-as3/src/spine/Bone.as +++ b/spine-as3/spine-as3/src/spine/Bone.as @@ -273,8 +273,8 @@ public class Bone implements Updatable { var x:Number = world[0] - _worldX, y:Number = world[1] - _worldY; var a:Number = _a, b:Number = _b, c:Number = _c, d:Number = _d; var invDet:Number = 1 / (a * d - b * c); - world[0] = (x * a * invDet - y * b * invDet); - world[1] = (y * d * invDet - x * c * invDet); + world[0] = (x * d * invDet - y * b * invDet); + world[1] = (y * a * invDet - x * c * invDet); } public function localToWorld (local:Vector.) : void { diff --git a/spine-c/src/spine/Bone.c b/spine-c/src/spine/Bone.c index 89d3cee0e..f7f92c1b7 100644 --- a/spine-c/src/spine/Bone.c +++ b/spine-c/src/spine/Bone.c @@ -221,8 +221,8 @@ void spBone_worldToLocal (spBone* self, float worldX, float worldY, float* local float x = worldX - self->worldX, y = worldY - self->worldY; float a = self->a, b = self->b, c = self->c, d = self->d; float invDet = 1 / (a * d - b * c); - *localX = (x * a * invDet - y * b * invDet); - *localY = (y * d * invDet - x * c * invDet); + *localX = (x * d * invDet - y * b * invDet); + *localY = (y * a * invDet - x * c * invDet); } void spBone_localToWorld (spBone* self, float localX, float localY, float* worldX, float* worldY) { diff --git a/spine-csharp/src/Bone.cs b/spine-csharp/src/Bone.cs index ed53caf47..9ab20166c 100644 --- a/spine-csharp/src/Bone.cs +++ b/spine-csharp/src/Bone.cs @@ -233,8 +233,8 @@ namespace Spine { float x = worldX - this.worldX, y = worldY - this.worldY; float a = this.a, b = this.b, c = this.c, d = this.d; float invDet = 1 / (a * d - b * c); - localX = (x * a * invDet - y * b * invDet); - localY = (y * d * invDet - x * c * invDet); + localX = (x * d * invDet - y * b * invDet); + localY = (y * a * invDet - x * c * invDet); } public void LocalToWorld (float localX, float localY, out float worldX, out float worldY) { diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java index cc7b5c0e6..1248839e8 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java @@ -356,8 +356,8 @@ public class Bone implements Updatable { float x = world.x - worldX, y = world.y - worldY; float a = this.a, b = this.b, c = this.c, d = this.d; float invDet = 1 / (a * d - b * c); - world.x = (x * a * invDet - y * b * invDet); - world.y = (y * d * invDet - x * c * invDet); + world.x = (x * d * invDet - y * b * invDet); + world.y = (y * a * invDet - x * c * invDet); return world; }