1

特定の時点で多数のインスタンスがシーンにあるスプライトがあります。インスタンスの画面上で 1 つの特定のインスタンスを一時停止させることは可能ですか。私はスレッド待機でそれをしなければならないことを知っています(おそらく)が、特定のスプライトインスタンスを待機しようとすると、指定した時間だけシーン全体が一時停止しますが、これは私が望むものではありません。誰か助けてくれませんか?

これがコードです

    if((_target.contains(P4X[5], P4Y[5])) || (_target.contains(P5X[4], P5Y[4]))){

                removeSprite(_target);

     }

ここでしばらく待ってから、スプライト _target を削除します。

4

2 に答える 2

3

必要なツールは次の 2 つです。

// will make your sprite stop updting.
sprite.setIgnoreUpdate(true);

完了したら、TimerHandler として使用してスプライトを再アクティブ化します。

//TimerHandler(seconds, autoReset, callback)
TimerHandler timerHandler = new TimerHandler(0.1f, true, new ITimerCallback(){
@Override
public void onTimePassed(TimerHandler arg0) {
     // Called when timer has completed
     // unpause your sprite here.
}
});
scene.registerUpdateHandler(timerHandler);

これら 2 つのツールを使用すると、スプライトを一時停止および一時停止解除できます。

于 2012-07-31T18:47:37.130 に答える
1

DelayModifierを使用できます。

DelayModifier mod = new DelayModifier(numberOfSeconds);
mod.addModifierListener(new IModifierListener<IEntity>() {

    @Override
    public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
        removeSprite(_target);

    }
});
_target.registerEntityModifier(mod);
于 2012-07-31T08:59:29.407 に答える