如何改变TimerHandler延迟AndEngine?TimerHandler、AndEngine

2023-09-06 01:26:37 作者:选择奔跑

我有这样的方法我创建增加了一个精灵到我的andengine现场每一秒。

I have this method i create that adds a sprite to my andengine scene every second.

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

我想要做的是,例如:

What i want to do is, for example

if(x <= b){

 mEffectSpawnDelay = mEffectSpawnDely - .2f;
 }

我运行到的问题是,当变量被改变。我不能想出一个办法来更新TimeHandler让它知道改变mEffectSpawnDelay变量。

The problem i am running into is that when the variable is changed. I cant figure out a way to update the TimeHandler letting it know to change the mEffectSpawnDelay variable.

有什么建议?

推荐答案

我创建此类刚才你。我认为它应该工作,你可以更改间隔之间蜱如你所愿。 (没有测试它,所以你可能需要做一些小的修正,但它看起来不错IMO)

I have created this class just now for you. I think it should work, and you can change the interval between ticks as you wish. (Haven't tested it, so you might need to make some small fixes. But it looks fine IMO.)

使用这种方式:

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

如果你想改变的时间间隔,你应该保持一个参考定时器。不管怎么说,改变间隔使用:

If you ever want to change the interval, you should keep a reference to the timer. Anyways, to change interval use:

timer.setInterval(newInterval);