我正在尝试用两帧动画一个精灵...... 动画从第0帧到第1帧起作用,但是“pFrameDurations不等于pFrameCount!”动画从第1帧到0时出现异常。
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 :(得分:0)
检查您正在使用的方法的签名:
public void animate(final long[] pFrameDurations, final int pFirstTileIndex, final int pLastTileIndex, final int pLoopCount, final IAnimationListener pAnimationListener);
您将第一个tile索引设置为1,将最后一个tile索引设置为0.
如果这不是错误并且您想要向后设置动画,则必须使用以下方法并按所需顺序指定帧:
public void animate(final long[] pFrameDurations, final int[] pFrames, final IAnimationListener pAnimationListener);