Browse Source

- TweeAnim: fixed last frame skip

dmuratshin 10 years ago
parent
commit
54878f525a
2 changed files with 20 additions and 4 deletions
  1. 3 3
      .hg_archival.txt
  2. 17 1
      oxygine/src/TweenAnim.cpp

+ 3 - 3
.hg_archival.txt

@@ -1,6 +1,6 @@
 repo: b6d71054df5712e643a0685bc3ba54b123db5729
 repo: b6d71054df5712e643a0685bc3ba54b123db5729
-node: ddb27258224fbef01e314628fffe76beea362f54
+node: 7841a7ab3ec8ecbdb26527726a05b70cff76a392
 branch: default
 branch: default
 latesttag: oldrender
 latesttag: oldrender
-latesttagdistance: 970
-changessincelatesttag: 1131
+latesttagdistance: 973
+changessincelatesttag: 1134

+ 17 - 1
oxygine/src/TweenAnim.cpp

@@ -54,7 +54,23 @@ namespace oxygine
     void TweenAnim::update(Sprite& actor, float p, const UpdateState& us)
     void TweenAnim::update(Sprite& actor, float p, const UpdateState& us)
     {
     {
         OX_ASSERT(_resAnim);
         OX_ASSERT(_resAnim);
-        int frame = lerp<int>(_start, _end, p);
+        int frame;
+        if (_start > _end)
+            frame = - int((_start + 1 - _end) * p);
+        else
+            frame =   int((_end   + 1 - _start) * p);
+
+        frame += _start;
+        /*
+        static int lastFrame = -1;
+        static int ltime = 0;
+        if (lastFrame != frame)
+        {
+            log::messageln("%d frame %d", getTimeMS() - ltime, frame);
+            ltime = getTimeMS();
+        }
+        lastFrame = frame;
+        */
 
 
         const AnimationFrame& fr = _row == -1 ? _resAnim->getFrame(frame) : _resAnim->getFrame(frame, _row);
         const AnimationFrame& fr = _row == -1 ? _resAnim->getFrame(frame) : _resAnim->getFrame(frame, _row);
         _setAnimFrame(actor, fr);
         _setAnimFrame(actor, fr);