java - java中的定时器( Action 延迟)

标签 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. 创建类变量来存储上次射击时间
  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();
}

关于java - java中的定时器( Action 延迟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053821/

相关文章:

macos - NSScrollView 并在滚动时手动设置内容偏移量

java - 使 PAX(OSGI 测试)框架更快的技巧

java - 连续暂停/停止和启动/恢复Java TimerTask?

Javafx 在单击时添加带有 fxml 的新选项卡

android - Android 中带有循环进度条的 CountDownTImer

javascript - 将 setTimeout() 重置回最大时间而不执行?

python - 如何在 Python 中获得毫秒和微秒分辨率的时间戳?

javascript - 延迟中断 javascript 重定向

java - 获取ActionEvent的坐标

java - 在Java中,如何在不提前知道名称的情况下加载类?