mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[libgdx] Fix for #1290, do not carry over time when timeScale of a track entry taht's being replaced by a new one is 0.
This commit is contained in:
parent
9fb2649dd1
commit
95df49f88d
@ -30,7 +30,10 @@
|
|||||||
|
|
||||||
package com.esotericsoftware.spine;
|
package com.esotericsoftware.spine;
|
||||||
|
|
||||||
import static com.esotericsoftware.spine.Animation.RotateTimeline.*;
|
import static com.esotericsoftware.spine.Animation.RotateTimeline.ENTRIES;
|
||||||
|
import static com.esotericsoftware.spine.Animation.RotateTimeline.PREV_ROTATION;
|
||||||
|
import static com.esotericsoftware.spine.Animation.RotateTimeline.PREV_TIME;
|
||||||
|
import static com.esotericsoftware.spine.Animation.RotateTimeline.ROTATION;
|
||||||
|
|
||||||
import com.badlogic.gdx.utils.Array;
|
import com.badlogic.gdx.utils.Array;
|
||||||
import com.badlogic.gdx.utils.FloatArray;
|
import com.badlogic.gdx.utils.FloatArray;
|
||||||
@ -38,7 +41,6 @@ import com.badlogic.gdx.utils.IntArray;
|
|||||||
import com.badlogic.gdx.utils.IntSet;
|
import com.badlogic.gdx.utils.IntSet;
|
||||||
import com.badlogic.gdx.utils.Pool;
|
import com.badlogic.gdx.utils.Pool;
|
||||||
import com.badlogic.gdx.utils.Pool.Poolable;
|
import com.badlogic.gdx.utils.Pool.Poolable;
|
||||||
|
|
||||||
import com.esotericsoftware.spine.Animation.AttachmentTimeline;
|
import com.esotericsoftware.spine.Animation.AttachmentTimeline;
|
||||||
import com.esotericsoftware.spine.Animation.DrawOrderTimeline;
|
import com.esotericsoftware.spine.Animation.DrawOrderTimeline;
|
||||||
import com.esotericsoftware.spine.Animation.MixBlend;
|
import com.esotericsoftware.spine.Animation.MixBlend;
|
||||||
@ -127,7 +129,7 @@ public class AnimationState {
|
|||||||
float nextTime = current.trackLast - next.delay;
|
float nextTime = current.trackLast - next.delay;
|
||||||
if (nextTime >= 0) {
|
if (nextTime >= 0) {
|
||||||
next.delay = 0;
|
next.delay = 0;
|
||||||
next.trackTime = (nextTime / current.timeScale + delta) * next.timeScale;
|
next.trackTime = current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale;
|
||||||
current.trackTime += currentDelta;
|
current.trackTime += currentDelta;
|
||||||
setCurrent(i, next, true);
|
setCurrent(i, next, true);
|
||||||
while (next.mixingFrom != null) {
|
while (next.mixingFrom != null) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user