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

Timer in java (delay on actions)

所以我有这个我正在制作的小型 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. 创建class变量用于存储上次拍摄时间
  2. 在此变量中保存上次拍摄时间
  3. 比较拍摄事件的当前时间和变量值,决定是否允许再次拍摄。

类似于:

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