所以我正在制作这个小型 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();
}
关于java - java中的定时器( Action 延迟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053821/