2012-07-31 1 views
1

특정 시점에 수많은 인스턴스가 장면에있는 스프라이트가 있습니다. 특정 인스턴스를 인스턴스에 대해 화면에서 일시 중지시킬 수 있습니까? 내가 스레드 대기 (아마)와 함께 그것을 할 필요가 있지만 특정 스프라이트 인스턴스에서 기다릴려고 할 때, 내가 원하는 걸 내가 지정한 시간 동안 전체 장면을 일시 중지합니다. 누군가 도울 수 있습니까? 스프린트의 특정 인스턴스를 일정한 시간 동안 만들고 멈추는 방법

내가 몇 시간 동안 여기 기다린 후 스프라이트 _target을 제거 할 코드

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

       removeSprite(_target); 

    } 

입니다. 당신이 필요합니다

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

답변

3

두 도구는

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

를하고 완료되면 스프라이트를 활성화 TimerHandler로 사용

+0

도움을 주셔서 감사합니다. 정말 감사! –

1

당신은 DelayModifier를 사용할 수 있습니다.

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

이러한 두 도구를 사용하면 스프라이트를 일시 중지하고 일시 중지 해제 할 수 있습니다.