大砲になって弾薬を発射するだけのゲームを開発しました。これを単純な物理シミュレーションにする予定です。ただし、1 つ問題があります。プレイヤーが毎秒 1 発しか発射できないようにクールダウン機能を実装しようとしましたが、(発射ボタンを押したままにしておくと) 2、3、または 4 発の弾が同時に発射され、その後休むことがあります。 1秒間。ほとんどの場合、弾丸は 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;