爆弾を投下する

スクランブルもどきでは自機から発射された弾丸は水平に同じ速度で移動していきますが、投下された爆弾はそのまま下へ移動するのではなく、最初前方へ移動してそれから下に向けて落下していきます。そこでBombクラスを作成して爆弾の動きを管理します。

Bombクラス

プロパティ

X,Y
爆弾が表示される座標です。

Size
爆弾の表示サイズです。

IsDead
最初は falseです。爆弾がなにかに命中したのであればtrueになります。

DeadRectangle
この矩形内にある場合、爆弾と衝突したことになります。

Tick
その爆弾が投下されて何回Tickイベントが発生したかを記憶させます。これによって投下後の動きがかわります。

メソッド

void Fall()
爆弾を落下させます。投下されてからの時間で動きが異なります。

実際のコード

次にForm1クラスで爆弾を投下するメソッドを作成します。

Xキーを押すとJiki.Bombメソッドが呼び出されて爆弾の投下が行なわれます。Jiki.BombメソッドではList bombListの中に投下された爆弾のオブジェクトが格納されます。

これがJikiクラスのBombメソッドです。自機の死亡判定がされる矩形の相対位置で爆弾の出現位置を決めています。

Form1クラスのなかでTickイベントが発生したら爆弾を下に移動させて当たり判定を行ないます。

まず地面に命中した爆弾や画面の外にでた爆弾は表示する必要がないのでリストから取り除いています。敵のミサイルに命中した爆弾もリストから取り除いていますが、点数計算のためにイベントを発生させています。

あとはイベントハンドラPanelEx1_Paintに描画時の処理を書き加えます。

ミス判定

最後に自機が敵に接触したらミスとなるので、これも実装することにします。