スクランブルではUFOのステージが終わると水平方向に高速で飛ぶファイアボールが出現します。この処理を追加します。

まずFireballクラスを示します。

StageクラスのUpdate()メソッドでファイアボールを生成して移動させます。

実際にファイアボールを生成して移動させる処理を示します。

CreateFireball()メソッドはUpdate()メソッドが呼び出されるたびに実行されますが、実際に処理をおこなうのはファイアボールが出現するステージを通過中のときだけです。その場合も実際に処理を行なうのは5回に1回だけです(毎回ではファイアボールだらけになる)。

ファイアボール生成時のX座標は画面のすぐ右側、Y座標は乱数で決めます。

移動させるときは画面の左側に達したものはリストから取り除きます。また山に当たったものも取り除きます。ゲームを攻略するにはファイアボールが飛んでこない低空をうまく飛行する必要があります。

描画の処理をするDraw()メソッドにファイアボールを描画する処理を追加します。

敵との接触を判定するIsDead()メソッドにファイアボールとの接触があったかどうか調べる処理を追加します。

それからミスをしたあとゲーム再開の処理をするときにFireballsリストをクリアします(しないとミス処理がおわってゲーム再開になった瞬間、ミスとなる)。