今回はボスコニアンの要塞を描画します。ビットマップからテクスチャを作成します。ビットマップは他の人がYouTubeにアップしているプレイ動画から取得します。

まずコンストラクタですが、引数をひとつ増やしています。中央にあるコアに弾丸を撃ち込めば破壊できるのですが、コアの方向が縦方向になっているものと横方向になっているものがあるからです。

要塞には6個の砲台があります。砲台から自機に向けて弾丸が発射されます。また自機も砲台も弾丸を撃ち込めば破壊できます。要塞は6つの砲台をすべて破壊するか、中央のコアに弾丸を撃ち込むことで破壊できます。

要塞を描画するためには中心のコアと6つの砲台を描画する必要があるのと、それぞれに対する当たり判定を考えないといけません。ちょっと難しそうに感じたのですが、想像以上に時間がかかってしまいました。

まずコンストラクタ内で中央部分の座標が引数として渡されるので、ここからコアの描画位置と砲台の描画位置を決めます。

当たり判定はまずコアに弾丸が命中したかどうかを調べます。命中している場合はExplosion()メソッドを呼び出して要塞を大爆発させます。

コアに当たっていない場合は砲台に命中したかどうか調べます。破壊されていない砲台に自機の弾丸が命中した場合は砲台が破壊されます。すでに破壊されている砲台に命中した場合、要塞はそれ以上のダメージをうけません。自機弾丸に死亡フラグが立つだけです。

要塞関連の処理が大変そう。他にも砲台から自機めがけて弾丸を発射する処理もしないといけないのに・・・。

では要塞を描画したり破壊できる処理を追加しましょう。

まずゲームが開始されたら要塞をフィールド上に配置します。

Form1クラスにおいてUpdate()の変更はありません。要塞は移動しないからです。ただ破壊された要塞はFortressesリストから取り除かれないといけません。描画はDraw()メソッド内で自作メソッド DrawFortresses()を呼び出しておこないます。

要塞との当たり判定に関する機能を追加します。要塞と自機が衝突した場合は自機だけでなく要塞も大爆発して消滅します。