レーザーの移動と発射

次にレーザーの移動と発射です。レーザービームは自動的に発射され上に向かって移動していきます。レーザーの現在のY座標に移動量を加算(移動量は負数になっています)することで上に向かって移動します。画面外まで移動したら再度レーザーを発射します。レーザーの発射は自機の位置からになるので、自機の位置を基準にしてレーザーの発射座標を決めます。レーザーが上に向かって移動するたびに敵との接触判定を行わなければなりません。敵との接触判定を行うのが関数hitEnemy()です。この関数については次項で説明します。

コード03

        function moveLaser(){
            if (!gameFlag) return;  // ゲーム中でなければ処理しない
            laserY = laserY + dy;   // レーザーを縦方向に移動させる
            document.getElementById("laser").style.left = laserX;   // レーザーを指定したX座標に表示する
            document.getElementById("laser").style.top = laserY;    // レーザーを指定したY座標に表示する
            hitEnemy(); // 敵との接触判定
            if (laserY< -laserH) startLaser();  // レーザーを再度発射する
        }

コード04

        function startLaser(){
            laserX = fighterX + 10;
            laserY = fighterY;
        }