player.fire
スペースバーが にある場合にtrueになるブール値です。すべてが正常に機能します。 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);
}