java中的计时器(动作延迟)

时间:2017-02-05 15:32:11

标签: java timer delay intervals

所以我有这个小小的2D游戏我正在努力。我在java中不是很好,但我确实理解很多。但我想这样做,当我的角色发射子弹时,他再也不能射击2秒了。或者任何延迟。我尝试了很多东西,但它根本不适用于我想要实现的目标。这就是我用来发射子弹的方法。

    if (Mouse.next() && Mouse.isButtonDown(0)) {
        t.scheduleAtFixedRate(task, 0, 10000);
        Game.bullets.add(new Bullet(new Vector2f(position.x + 25, position.y + 19), new Vector2f(position.x, 0)));
    }

由于

1 个答案:

答案 0 :(得分:1)

  1. 创建用于存储上次拍摄时间的类变量
  2. 在此变量中保存最后一次拍摄时间
  3. 比较当前时间和变量在拍摄事件上的值,并决定是否允许再次拍摄。
  4. 类似的东西:

    if (Mouse.next() && Mouse.isButtonDown(0) && (System.currentTimeMillis() - lastShotTime >= 2000)) {
        t.scheduleAtFixedRate(task, 0, 10000);
        Game.bullets.add(new Bullet(new Vector2f(position.x + 25, position.y + 19), new Vector2f(position.x, 0)));
        lastShotTime = System.currentTimeMillis();
    }