-1

大砲になって弾薬を発射するだけのゲームを開発しました。これを単純な物理シミュレーションにする予定です。ただし、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;
4

1 に答える 1

2

は、関数名ではなくclearInterval()を受け入れます。intervalId

于 2013-06-28T22:50:53.360 に答える