我开发了一款游戏,你可以像大炮一样玩火弹弹药,我打算让它成为一个简单的物理模拟。但是有一个问题。我试图实现一个冷却功能,所以玩家每秒只能发射一颗子弹,但有时候(如果这个人按下火按钮),它会同时发射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;
答案 0 :(得分:2)
clearInterval()
接受intervalId
,而不接受函数名称。