Fixed bugs with timeScale.

This commit is contained in:
NathanSweet 2013-09-28 20:22:56 +02:00
parent ba60fb99bd
commit b854dd94c3
3 changed files with 16 additions and 13 deletions

View File

@ -86,19 +86,20 @@ void AnimationState_dispose (AnimationState* self) {
void AnimationState_update (AnimationState* self, float delta) {
int i;
float time, endTime;
float time, endTime, trackDelta;
delta *= self->timeScale;
for (i = 0; i < self->trackCount; i++) {
TrackEntry* current = self->tracks[i];
if (!current) continue;
delta *= self->timeScale * current->timeScale;
time = current->time + delta;
trackDelta = delta * current->timeScale;
time = current->time + trackDelta;
endTime = current->endTime;
current->time = time;
if (current->previous) {
current->previous->time += delta;
current->mixTime += delta;
current->previous->time += trackDelta;
current->mixTime += trackDelta;
}
/* Check if completed the animation or a loop iteration. */

View File

@ -56,18 +56,19 @@ namespace Spine {
}
public void Update (float delta) {
delta *= timeScale;
for (int i = 0, n = tracks.Count; i < n; i++) {
TrackEntry current = tracks[i];
if (current == null) continue;
delta *= timeScale * current.timeScale;
float time = current.time + delta;
float trackDelta = delta * current.timeScale;
float time = current.time + trackDelta;
float endTime = current.endTime;
current.time = time;
if (current.previous != null) {
current.previous.time += delta;
current.mixTime += delta;
current.previous.time += trackDelta;
current.mixTime += trackDelta;
}
// Check if completed the animation or a loop iteration.

View File

@ -51,18 +51,19 @@ public class AnimationState {
}
public void update (float delta) {
delta *= timeScale;
for (int i = 0, n = tracks.size; i < n; i++) {
TrackEntry current = tracks.get(i);
if (current == null) continue;
delta *= timeScale * current.timeScale;
float time = current.time + delta;
float trackDelta = delta * current.timeScale;
float time = current.time + trackDelta;
float endTime = current.endTime;
current.time = time;
if (current.previous != null) {
current.previous.time += delta;
current.mixTime += delta;
current.previous.time += trackDelta;
current.mixTime += trackDelta;
}
// Check if completed the animation or a loop iteration.