From 77774608bfcb5a316bf3f030274951eeb31b7fab Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Thu, 16 Sep 2021 17:00:10 -0600 Subject: [PATCH] [as3][c][cpp][csharp][libgdx][lua][ts] Fixed updateAppliedTransform for the root bone. --- spine-as3/spine-as3/src/spine/Bone.as | 4 ++-- spine-c/spine-c/src/spine/Bone.c | 4 ++-- spine-cpp/spine-cpp/src/spine/Bone.cpp | 4 ++-- spine-csharp/src/Bone.cs | 4 ++-- .../spine-libgdx/src/com/esotericsoftware/spine/Bone.java | 4 ++-- spine-lua/spine-lua/Bone.lua | 4 ++-- spine-ts/spine-core/src/Bone.ts | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/spine-as3/spine-as3/src/spine/Bone.as b/spine-as3/spine-as3/src/spine/Bone.as index 33dda6ccf..86839edba 100644 --- a/spine-as3/spine-as3/src/spine/Bone.as +++ b/spine-as3/spine-as3/src/spine/Bone.as @@ -253,8 +253,8 @@ package spine { internal function updateAppliedTransform() : void { var parent : Bone = this.parent; if (parent == null) { - ax = worldX; - ay = worldY; + ax = worldX - skeleton.x; + ay = worldY - skeleton.y; arotation = Math.atan2(c, a) * MathUtils.radDeg; ascaleX = Math.sqrt(a * a + c * c); ascaleY = Math.sqrt(b * b + d * d); diff --git a/spine-c/spine-c/src/spine/Bone.c b/spine-c/spine-c/src/spine/Bone.c index 3163500b1..2e8eccf44 100644 --- a/spine-c/spine-c/src/spine/Bone.c +++ b/spine-c/spine-c/src/spine/Bone.c @@ -218,8 +218,8 @@ float spBone_getWorldScaleY(spBone *self) { void spBone_updateAppliedTransform(spBone *self) { spBone *parent = self->parent; if (!parent) { - self->ax = self->worldX; - self->ay = self->worldY; + self->ax = self->worldX - self->skeleton->x; + self->ay = self->worldY - self->skeleton->y; self->arotation = ATAN2(self->c, self->a) * RAD_DEG; self->ascaleX = SQRT(self->a * self->a + self->c * self->c); self->ascaleY = SQRT(self->b * self->b + self->d * self->d); diff --git a/spine-cpp/spine-cpp/src/spine/Bone.cpp b/spine-cpp/spine-cpp/src/spine/Bone.cpp index 26c1240bc..c886d0a5f 100644 --- a/spine-cpp/spine-cpp/src/spine/Bone.cpp +++ b/spine-cpp/spine-cpp/src/spine/Bone.cpp @@ -493,8 +493,8 @@ float Bone::getWorldScaleY() { void Bone::updateAppliedTransform() { Bone *parent = _parent; if (!parent) { - _ax = _worldX; - _ay = _worldY; + _ax = _worldX - _skeleton.getX(); + _ay = _worldY - _skeleton.getY(); _arotation = MathUtil::atan2(_c, _a) * MathUtil::Rad_Deg; _ascaleX = MathUtil::sqrt(_a * _a + _c * _c); _ascaleY = MathUtil::sqrt(_b * _b + _d * _d); diff --git a/spine-csharp/src/Bone.cs b/spine-csharp/src/Bone.cs index 64627eb59..74dc8e94e 100644 --- a/spine-csharp/src/Bone.cs +++ b/spine-csharp/src/Bone.cs @@ -277,8 +277,8 @@ namespace Spine { internal void UpdateAppliedTransform () { Bone parent = this.parent; if (parent == null) { - ax = worldX; - ay = worldY; + ax = worldX - skeleton.x; + ay = worldY - skeleton.y; arotation = MathUtils.Atan2(c, a) * MathUtils.RadDeg; ascaleX = (float)Math.Sqrt(a * a + c * c); ascaleY = (float)Math.Sqrt(b * b + d * d); 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 68a1387d1..569ef8814 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java @@ -397,8 +397,8 @@ public class Bone implements Updatable { public void updateAppliedTransform () { Bone parent = this.parent; if (parent == null) { - ax = worldX; - ay = worldY; + ax = worldX - skeleton.x; + ay = worldY - skeleton.y; float a = this.a, b = this.b, c = this.c, d = this.d; arotation = atan2(c, a) * radDeg; ascaleX = (float)Math.sqrt(a * a + c * c); diff --git a/spine-lua/spine-lua/Bone.lua b/spine-lua/spine-lua/Bone.lua index 7a4d85096..5a6473047 100644 --- a/spine-lua/spine-lua/Bone.lua +++ b/spine-lua/spine-lua/Bone.lua @@ -214,8 +214,8 @@ end function Bone:updateAppliedTransform () local parent = self.parent if not parent then - self.ax = self.worldX - self.ay = self.worldY + self.ax = self.worldX - self.skeleton.x + self.ay = self.worldY - self.skeleton.y local a = self.a local b = self.b local c = self.c diff --git a/spine-ts/spine-core/src/Bone.ts b/spine-ts/spine-core/src/Bone.ts index 9db42d6e9..548d8adaf 100644 --- a/spine-ts/spine-core/src/Bone.ts +++ b/spine-ts/spine-core/src/Bone.ts @@ -298,8 +298,8 @@ export class Bone implements Updatable { updateAppliedTransform () { let parent = this.parent; if (!parent) { - this.ax = this.worldX; - this.ay = this.worldY; + this.ax = this.worldX - this.skeleton.x; + this.ay = this.worldY - this.skeleton.y; this.arotation = Math.atan2(this.c, this.a) * MathUtils.radDeg; this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d);