player.fire
是一个布尔值,如果空格键在keydown
. 一切正常。
我遇到的问题是控制数组asteroids.firing.push
间隔。现在,它添加了一些实例,即使我轻轻点击空格键也是如此。我正在使用requestAnimationFrame
.
如何控制push
间隔?
if(player.fire){
var angle = thisShip.rot,
hyp = 10; //speed
var vX = Math.cos(angle) * hyp,
vY = Math.sin(angle) * hyp;
asteroids.firing.push(new asteroids.model.fire(thisShip.x, thisShip.y, vX, vY));
}
我已经尝试过类似的方法,但它并没有减慢push
间隔,而是产生了一种脉冲效果,一次又一次地重新生成发射序列。
...
if(player.fire){
fireInterval(thisShip);
}
function fireInterval(thisShip){
var angle = thisShip.rot,
hyp = 10; //speed
var vX = Math.cos(angle) * hyp,
vY = Math.sin(angle) * hyp;
asteroids.firing.push(new asteroids.model.fire(thisShip.x, thisShip.y, vX, vY));
setTimeout(function(){
fireInterval(thisShip);
}, 500);
}