当创建一个精灵对象时,我.animate(250);
用来开始循环我的精灵。这工作正常。
但是当我在我的碰撞检测中尝试运行类似.animate(new long[] { 250, 250, 500, 500 }, 0, 3, true);
它只显示帧号 0 的东西时。
如果我在第一次创建对象时调用它,这个函数也可以工作。
当创建一个精灵对象时,我.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);
}
因为如果动画永远不会进入第二帧是因为所有时间都在开始,最好的问候。