2014-10-26 3 views
0

Я пытаюсь анимировать спрайт с двумя кадрами ... анимация работает от кадра 0 до 1, но дает «pFrameDurations не равно pFrameCount!» исключение при анимации от кадра 1 до 0.Andengine несмотря на анимацию, дающую неправильное исключение кадровой таблицы

sprite.setCurrentTileIndex(1); 
sprite.animate(new long[]{200,0}, 1, 0, 0, new AnimatedSprite.IAnimationListener() { 

      @Override 
      public void onAnimationStarted(AnimatedSprite pAnimatedSprite, 
              int pInitialLoopCount) { 
      } 

      @Override 
      public void onAnimationLoopFinished(AnimatedSprite pAnimatedSprite, 
               int pRemainingLoopCount, int pInitialLoopCount) { 
      } 

      @Override 
      public void onAnimationFrameChanged(AnimatedSprite pAnimatedSprite, 
               int pOldFrameIndex, int pNewFrameIndex) { 
      } 

      @Override 
      public void onAnimationFinished(AnimatedSprite pAnimatedSprite) { 
      } 
     }); 

Кто-нибудь есть идеи?

ответ

0

Проверить подпись метода, который вы используете:

public void animate(final long[] pFrameDurations, final int pFirstTileIndex, final int pLastTileIndex, final int pLoopCount, final IAnimationListener pAnimationListener); 

Вы устанавливаете первый индекс плитки как 1 и последний индекс плитки как 0.

Если это не ошибка, и вы хотите анимируйте назад, вы должны использовать следующий метод и указать кадры в желаемом порядке:

public void animate(final long[] pFrameDurations, final int[] pFrames, final IAnimationListener pAnimationListener);