0

そのため、2 回実行した後にアニメーションを停止しようとしています。設定でアニメーションを再生しています

Animation blink = new Animation(BLINK_TIME, frames); // parameters are my fields

これは私が現在のフレームを取得する方法です:

   if(animate){
      stateTime += Gdx.graphics.getDeltaTime(); //stateTime was initialized to 0
      currentFrame.setRegion(blink.getKeyFrame(stateTime, true)); 
}
else 
   currentFrame.setRegion(defaultRegion);  // again, my own field!

animateフィールドが trueの場合、ここまではすべて正常に機能します。今、私はアニメーションを止めたいと思っています。

if(blink.isAnimationFinished(stateTime)){
        blinkTimes++;
        if(blinkTimes>=2)
            animate = false;
    }

問題は、isAnimationFinished(stateTime)呼び出されないことです。アニメーションのループで何かをしなければならないと思います。誰かが私を正しい方向に向けることができますか? ありがとう!

4

2 に答える 2

3

問題を発見!

isAnimationFinished(stateTime)アニメーションがループで再生されているときは機能しません。Animation.Normalそのため、モードで再生し、アニメーション クラスに非ループ モードで実行するようfalseに指示する必要がありました。blink.getKeyFrame(stateTime, false)

于 2013-07-22T09:27:33.847 に答える