Преглед на файлове

Fixes bug in sample03-character for macOS and iOS where jump animation was not transitioning back into the previous running animation.

Kieran Cunney преди 13 години
родител
ревизия
f4b289ebdb
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5 3
      gameplay/src/AnimationClip.cpp

+ 5 - 3
gameplay/src/AnimationClip.cpp

@@ -342,7 +342,9 @@ bool AnimationClip::update(unsigned long elapsedTime)
     // Check to see if clip is complete.
     if (_repeatCount != REPEAT_INDEFINITE && ((_speed >= 0.0f && _elapsedTime >= (long) _activeDuration) || (_speed <= 0.0f && _elapsedTime <= 0L)))
     {
-        resetClipStateBit(CLIP_IS_STARTED_BIT);
+        if (!isClipStateBitSet(CLIP_IS_FADING_OUT_BIT))
+            resetClipStateBit(CLIP_IS_STARTED_BIT);
+        
         if (_speed >= 0.0f)
         {
             // If _duration == 0, we have a "pose". Just set currentTime to 0.
@@ -416,13 +418,13 @@ bool AnimationClip::update(unsigned long elapsedTime)
         if (isClipStateBitSet(CLIP_IS_FADING_OUT_STARTED_BIT)) // Calculate elapsed time since the fade out begin.
         {
             GP_ASSERT(_crossFadeToClip);
-            _crossFadeOutElapsed = (Game::getGameTime() - _crossFadeToClip->_timeStarted) * abs(_speed); 
+            _crossFadeOutElapsed = (Game::getGameTime() - _crossFadeToClip->_timeStarted) * fabs(_speed); 
             resetClipStateBit(CLIP_IS_FADING_OUT_STARTED_BIT);
         }
         else
         {
             // continue tracking elapsed time.
-            _crossFadeOutElapsed += elapsedTime * abs(_speed);
+            _crossFadeOutElapsed += elapsedTime * fabs(_speed);
         }
 
         if (_crossFadeOutElapsed < _crossFadeOutDuration)