我开发了一个游戏,您可以在其中扮演大炮并仅发射弹药,我计划将其制作为简单的物理模拟。不过,有一个问题。我尝试实现一个冷却功能,让玩家每秒只能发射一颗子弹,但有时(如果该人按住开火按钮)它会同时发射 2,3 或 4 颗子弹,然后休息1 秒钟。大多数时候它只发射一颗子弹,但可能有 30% 的时间它会同时发射一连串子弹。我不想要这个。
我希望它只发射一颗子弹,休息,然后重新发射。这是我的代码:
对于 Keydown 事件处理程序:
else if( e.keyCode == 38 && CanFire) { //UP
CanFire = false;
var bullet = new Bullet( Cannon.xpos, Cannon.ypos, 30, Cannon.angle );
Bullets.push(bullet);
window.setInterval(Reload, 1000);
}
重载功能:
function Reload() {
CanFire = true;
window.clearInterval(Reload);
}
全局变量:
var CanFire = true;