【问题标题】:Timer in java (delay on actions)java中的计时器(动作延迟)
【发布时间】:2017-02-05 15:32:11
【问题描述】:

所以我有一个我正在开发的小型 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)));
    }

谢谢

【问题讨论】:

  • 一种简单的方法是将最后一次拍摄的时间存储在一个变量中,如果时间戳早于 2 秒,则检查每次鼠标点击。但是还有更多方法可以归档您想要的内容。

标签: java timer delay intervals


【解决方案1】:
  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();
}

【讨论】:

  • 如何比较一个变量和另一个变量?
猜你喜欢
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多