From 2f128958844031194aee9085f25164b08b53ace1 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Mon, 23 Mar 2026 01:54:02 -0400 Subject: [PATCH] [libgdx] Animation fixes. --- .../com/esotericsoftware/spine/Animation.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java index 9cf014172..edf520440 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java @@ -435,7 +435,7 @@ public class Animation { float setup) { if (time < frames[0]) return fromSetup ? setup : current; float value = getCurveValue(time) * setup; - if (alpha == 1) return value; + if (alpha == 1 && !add) return value; float base = fromSetup ? setup : current; if (add) return base + (value - setup) * alpha; if (out) return base + (Math.abs(value) * Math.signum(base) - base) * alpha; @@ -642,7 +642,7 @@ public class Animation { x *= setup.scaleX; y *= setup.scaleY; - if (!add && alpha == 1) { + if (alpha == 1 && !add) { pose.scaleX = x; pose.scaleY = y; } else { @@ -2138,9 +2138,15 @@ public class Animation { } PathConstraintPose base = fromSetup ? constraint.data.setup : pose; - pose.mixRotate = base.mixRotate + (rotate - base.mixRotate) * alpha; - pose.mixX = base.mixX + (x - base.mixX) * alpha; - pose.mixY = base.mixY + (y - base.mixY) * alpha; + if (add) { + pose.mixRotate = base.mixRotate + rotate * alpha; + pose.mixX = base.mixX + x * alpha; + pose.mixY = base.mixY + y * alpha; + } else { + pose.mixRotate = base.mixRotate + (rotate - base.mixRotate) * alpha; + pose.mixX = base.mixX + (x - base.mixX) * alpha; + pose.mixY = base.mixY + (y - base.mixY) * alpha; + } } }