如何更改 AndEngine 中的 TimerHandler 延迟? [英] How to change TimerHandler delay in AndEngine?

查看:29
本文介绍了如何更改 AndEngine 中的 TimerHandler 延迟?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了这个方法,它每秒向我的引擎场景添加一个精灵.

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

我想做的是,例如

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

这篇关于如何更改 AndEngine 中的 TimerHandler 延迟?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆