From 47155e4427ef2a701eff29845db8bff88601c352 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Mon, 10 Apr 2017 22:08:35 +0900 Subject: [PATCH] Don't use setup pose for last apply when there is a next animation. http://esotericsoftware.com/forum/Mixing-fail-in-cocos2d-x-8200?p=38086#p38086 --- .../com/esotericsoftware/spine/AnimationState.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index c3373caf9..1e96856f4 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -108,14 +108,12 @@ public class AnimationState { } continue; } - } else { + } else if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. - if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { - tracks.set(i, null); - queue.end(current); - disposeNext(current); - continue; - } + tracks.set(i, null); + queue.end(current); + disposeNext(current); + continue; } updateMixingFrom(current, delta); @@ -159,7 +157,7 @@ public class AnimationState { float mix = current.alpha; if (current.mixingFrom != null) mix *= applyMixingFrom(current, skeleton); - else if (current.trackTime >= current.trackEnd) // + else if (current.trackTime >= current.trackEnd && current.next == null) // mix = 0; // Set to setup pose the last time the entry will be applied. // Apply current entry.