mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +08:00
Carry over remaining time when playing queued animations.
http://esotericsoftware.com/forum/viewtopic.php?f=7&t=2633
This commit is contained in:
parent
df312f4d24
commit
2e266127a0
@ -63,7 +63,8 @@ public class AnimationState {
|
|||||||
|
|
||||||
var next:TrackEntry = current.next;
|
var next:TrackEntry = current.next;
|
||||||
if (next) {
|
if (next) {
|
||||||
if (current.lastTime >= next.delay) setCurrent(i, next);
|
next.time = current.lastTime - next.delay;
|
||||||
|
if (next.time >= 0) setCurrent(i, next);
|
||||||
} else {
|
} else {
|
||||||
// End non-looping animation when it reaches its end time and there is no next entry.
|
// End non-looping animation when it reaches its end time and there is no next entry.
|
||||||
if (!current.loop && current.lastTime >= current.endTime) clearTrack(i);
|
if (!current.loop && current.lastTime >= current.endTime) clearTrack(i);
|
||||||
|
|||||||
@ -103,7 +103,8 @@ void spAnimationState_update (spAnimationState* self, float delta) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (current->next) {
|
if (current->next) {
|
||||||
if (current->lastTime >= current->next->delay) _spAnimationState_setCurrent(self, i, current->next);
|
current->next->time = current->lastTime - current->next->delay;
|
||||||
|
if (current->next->time >= 0) _spAnimationState_setCurrent(self, i, current->next);
|
||||||
} else {
|
} else {
|
||||||
/* End non-looping animation when it reaches its end time and there is no next entry. */
|
/* End non-looping animation when it reaches its end time and there is no next entry. */
|
||||||
if (!current->loop && current->lastTime >= current->endTime) spAnimationState_clearTrack(self, i);
|
if (!current->loop && current->lastTime >= current->endTime) spAnimationState_clearTrack(self, i);
|
||||||
|
|||||||
@ -981,7 +981,8 @@ spine.AnimationState.prototype = {
|
|||||||
|
|
||||||
var next = current.next;
|
var next = current.next;
|
||||||
if (next) {
|
if (next) {
|
||||||
if (current.lastTime >= next.delay) this.setCurrent(i, next);
|
next.time = current.lastTime - next.delay;
|
||||||
|
if (next.time >= 0) this.setCurrent(i, next);
|
||||||
} else {
|
} else {
|
||||||
// End non-looping animation when it reaches its end time and there is no next entry.
|
// End non-looping animation when it reaches its end time and there is no next entry.
|
||||||
if (!current.loop && current.lastTime >= current.endTime) this.clearTrack(i);
|
if (!current.loop && current.lastTime >= current.endTime) this.clearTrack(i);
|
||||||
|
|||||||
@ -68,7 +68,8 @@ public class AnimationState {
|
|||||||
|
|
||||||
TrackEntry next = current.next;
|
TrackEntry next = current.next;
|
||||||
if (next != null) {
|
if (next != null) {
|
||||||
if (current.lastTime >= next.delay) setCurrent(i, next);
|
next.time = current.lastTime - next.delay;
|
||||||
|
if (next.time >= 0) setCurrent(i, next);
|
||||||
} else {
|
} else {
|
||||||
// End non-looping animation when it reaches its end time and there is no next entry.
|
// End non-looping animation when it reaches its end time and there is no next entry.
|
||||||
if (!current.loop && current.lastTime >= current.endTime) clearTrack(i);
|
if (!current.loop && current.lastTime >= current.endTime) clearTrack(i);
|
||||||
|
|||||||
@ -84,7 +84,8 @@ function AnimationState.new (data)
|
|||||||
|
|
||||||
local next = current.next
|
local next = current.next
|
||||||
if next then
|
if next then
|
||||||
if current.lastTime >= next.delay then setCurrent(i, next) end
|
next.time = current.lastTime - next.delay
|
||||||
|
if next.time >= 0 then setCurrent(i, next) end
|
||||||
else
|
else
|
||||||
-- End non-looping animation when it reaches its end time and there is no next entry.
|
-- End non-looping animation when it reaches its end time and there is no next entry.
|
||||||
if not current.loop and current.lastTime >= current.endTime then self:clearTrack(i) end
|
if not current.loop and current.lastTime >= current.endTime then self:clearTrack(i) end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user