スプライト オブジェクトを作成するときは、スプライトの.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のみを表示するようなものを実行しようとすると.
この関数は、オブジェクトを初めて作成するときに呼び出す場合にも機能します。
衝突は常に検出されるためだと思います。まず、スプライトにタグを設定してみてください。たとえば、次のようになります。
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);
}
アニメーションが2番目のフレームに進まない場合は、すべての時間が開始されているためです。よろしくお願いします。