2012-07-31 57 views
1

我有一個sprite,它的許多實例在特定的時間點在場景中。是否有可能讓一個特定的實例在屏幕上暫停實例。我知道我必須用一個線程等待(可能),但是當我試圖等待一個特定的精靈實例時,它暫停了整個場景,我指定的時間不是我想要的。有人可以幫忙嗎?如何讓特定的sprite實例暫停一段時間andengine

這是我想在這裏等待一段時間,然後取出精靈_target代碼

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

       removeSprite(_target); 

    } 

回答

3

兩個工具,你需要有

// 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); 

這兩個工具應該讓你暫停和取消暫停精靈。

+0

哎感謝您的幫助!對此,我真的非常感激! – 2012-08-01 04:37:42

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); 
相關問題