自機から爆弾を投下してミサイルや燃料タンクを破壊します。Xキーを押すと爆弾が投下されます。実際の処理はStageクラスのJikiBomb()メソッド(後述)にやらせます。

Form1.Bomb()は自機から爆弾を投下するためのメソッドです。

Bombクラス

Bombクラスは爆弾を描画する位置を記憶したり移動させるためのクラスです。爆弾の落下軌道はプロパティで管理します。

爆弾が敵や地形に命中したらフィールド変数 isDeadをtrueにします。爆弾としては存在しないものなので移動や描画対象から外します。

それから爆弾は弾丸とちがって同じ速度で同じ方向に飛ぶわけではありません。Move()メソッドが呼び出される回数で移動方向を変えています。

爆弾を投下する処理

実際に爆弾を投下する処理はStageクラスでおこないます。Bombオブジェクトを格納するリストとしてBombsを作成します。連続投下は2個までとして0.5秒開けることにします。最初に爆弾が出現する場所はGetBombStartPosition()メソッドで決めます。

爆弾の移動と当たり判定

タイマーによってUpdate()メソッドが呼び出されたら、UpdateBombsPosition()メソッドで爆弾の表示位置の変更し、GetObjectsHitBomb()メソッドで爆弾が敵に命中したかを調べます。

何かに命中した爆弾や画面下まで到達した爆弾(地面に必ず当たるので画面下に到達することはないはずだが・・・)はBombs内から取り除きます。

爆弾の描画

描画の処理です。Draw()メソッド内で、Bombs内に残っている爆弾を描画します。

爆弾命中時のスコアの変化

爆弾が命中したらスコアを加算し表示させます。

得点のイベントが発生したらスコアを更新します。