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

java中的计时器(动作延迟),java,timer,delay,intervals,Java,Timer,Delay,Intervals,所以我有一个小2d游戏,我只是在做。我对java不是很在行,但我确实很懂。但我想让我的角色发射子弹时,他不能再发射2秒。或是任何拖延。我已经尝试了很多事情,但它根本不符合我想要实现的目标。这就是我用来发射子弹的东西 if (Mouse.next() && Mouse.isButtonDown(0)) { t.scheduleAtFixedRate(task, 0, 10000); Game.bullets.add(new Bullet(ne

所以我有一个小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)));
    }
谢谢

  • 创建用于存储上次放炮时间的类变量
  • 在此变量中保存上次拍摄时间
  • 比较射击项目的当前时间和变量值,决定是否允许再次射击
  • 比如:

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

    一种简单的方法是将最后一次放炮的时间存储在一个变量中,并检查每次鼠标点击的时间戳是否超过2秒。但是有更多的方法来归档你想要的东西。我如何比较一个变量和另一个变量?