我有一个精灵,在特定的时间点有许多实例在场景中。是否可以在屏幕上为一个实例暂停一个特定实例。我知道我必须使用线程等待(可能),但是当我尝试在特定的精灵实例上等待时,它会暂停整个场景,我指定的时间不是我想要的。有人可以帮忙吗?
这是代码
if((_target.contains(P4X[5], P4Y[5])) || (_target.contains(P5X[4], P5Y[4]))){
removeSprite(_target);
}
我想在这里等一段时间然后删除精灵_target。
答案 0 :(得分: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);
这两个工具可以让你暂停和取消暂停精灵。
答案 1 :(得分: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);