如何在AndEngine中更改TimerHandler延迟?

cod*_*e22 1 java android andengine

我有这个创建的方法,每秒都会向我的andengine场景添加一个精灵.

 private void createSpriteSpawnTimeHandler(){
        TimerHandler spriteTimerHandler;
        float mEffectSpawnDelay = 1f;
        spriteTimerHandler = new TimerHandler(mEffectSpawnDelay,true,new ITimerCallback(){
        @Override
        public void onTimePassed(TimerHandler pTimerHandler) {
                addFace();
        }
        });
        getEngine().registerUpdateHandler(spriteTimerHandler);
}
Run Code Online (Sandbox Code Playgroud)

我想做的是,例如

if(x <= b){

 mEffectSpawnDelay = mEffectSpawnDely - .2f;
 }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当变量发生变化时.我无法找到更新TimeHandler的方法,让它知道更改mEffectSpawnDelay变量.

有什么建议?

Jon*_*ong 11

我刚刚为你创建了这个课程.我认为它应该可以工作,你可以根据需要改变刻度之间的间隔.(尚未对其进行测试,因此您可能需要进行一些小修复.但它看起来很好IMO.)

用这种方式:

Timer timer = new Timer(interval, new Timer.ITimerCallback() {
    public void onTick() {
        //Your code to execute each interval.
    }
}
(Engine object here).registerUpdateHandler(timer);
Run Code Online (Sandbox Code Playgroud)

如果您想更改间隔,则应该保留对计时器的引用.无论如何,改变间隔使用:

timer.setInterval(newInterval);
Run Code Online (Sandbox Code Playgroud)