1

当创建一个精灵对象时,我.animate(250);用来开始循环我的精灵。这工作正常。

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

如果我在第一次创建对象时调用它,这个函数也可以工作。

4

1 回答 1

1

我认为是因为始终检测到碰撞,请尝试首先在您的 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);
}

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

于 2012-12-26T18:35:30.177 回答