From c11afb283df59541f91a0f4978ff7b5c09568f48 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 28 Nov 2023 13:25:06 +0100 Subject: [PATCH] [libgdx] Take skeleton scale into account when applying translation only IK constraint, see #2412 --- .../src/com/esotericsoftware/spine/IkConstraint.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java index 864716224..445d7da62 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/IkConstraint.java @@ -182,8 +182,8 @@ public class IkConstraint implements Updatable { float rotationIK = -bone.ashearX - bone.arotation, tx, ty; switch (bone.data.transformMode) { case onlyTranslation: - tx = targetX - bone.worldX; - ty = targetY - bone.worldY; + tx = (targetX - bone.worldX) * Math.signum(bone.skeleton.scaleX); + ty = (targetY - bone.worldY) * Math.signum(bone.skeleton.scaleY); break; case noRotationOrReflection: float s = Math.abs(pa * pd - pb * pc) / Math.max(0.0001f, pa * pa + pc * pc);