当创建一个精灵对象时,我使用.animate(250);开始循环遍历我的精灵。这很好。

但是当我在碰撞检测中尝试运行类似.animate(new long[] { 250, 250, 500, 500 }, 0, 3, true);之类的东西时,它仅显示帧号0。

如果我在第一次创建对象时调用它,该函数也将起作用。

最佳答案

我认为是因为始终检测到冲突,请尝试首先在您的Sprite中设置一个标签,例如:

AnimatedSprite elemen1 = new AnimatedSprite(...);
elemen1.setTag(1);


在您的碰撞方法中:

if(elemen1.getTag==1 && elemen1.collidesWith(elementX)){
       elemen1.setTag(0);
       elemen1.animate(new long[] { 250, 250, 500, 500 }, 0, 3, true);
}


因为如果动画永远不会到第二帧是因为所有的时间都在开始,那么最好的问候。

08-26 01:45