如何在libgdx java中添加计时器?

时间:2014-05-25 19:18:47

标签: java android timer libgdx collision

我正在尝试为游戏中的加电添加计时器。我想要做的是在播放器与开机盒发生碰撞后更改参数(例如跳高),但它应该只应用4秒。我已经编写了碰撞编码并添加了一个随机元素来选择激活哪个加电。我还添加了一个不会使用计时器的电源(在评分中加1)。

搜索谷歌我发现代码使用各种方法,如Gdx.graphics.getDeltaTime()和Timer.schedule,但我似乎无法让它们工作,也许我正在编码错误。我一直试图使用这样的代码但是在使用System.out.println(timeSinceCollision)时,我每次都会得到一个恒定的值,而且它似乎并没有增加。

float timeSinceCollision = 0;
timeSinceCollision += delta;
if(timeSinceCollision < 4f) {
 // the action
} else {
 // reset

}

2 个答案:

答案 0 :(得分:0)

正如我在上面的评论中提到的,您可以使用CountDownTimer类。

new CountDownTimer(4000, 4000) {
    public void onTick(long millisUntilFinished) {

    }

    public void onFinish() {
       isPoweredUp = false;
    }
}.start();

答案 1 :(得分:0)

每次创建timeSinceCollision时值为0,这就是为什么它永远不会增加。

看看我的功能。 If条件每4秒为真。

    final float TIME_SINCE_COLLISION = 4;
    float timeSinceCollision = 0;

    public void update(float delta) {

        timeSinceCollision += delta;
        if (timeSinceCollision >= TIME_SINCE_COLLISION) {
            timeSinceCollision -= TIME_SINCE_COLLISION;
            // Do something after 4 seconds.
            Gdx.app.log("Do something", "");
        }
    }