完成品はこんな感じです。

前回のゲーム ギャラクシアンもどきをつくるでは自機を移動させ、弾丸を発射するところまでやりました。

次に敵をつくります。ところでギャラクシアンは敵のことではありません。Wikipediaによると

タイトルの「ギャラクシアン」とは銀河系の住人である人類、つまりプレイヤー側のことを指す言葉である

とのことです。またギャラクシアンの後継として登場したギャラガは銀河(銀河系)を意味する「ギャラクシー」+「蛾」の造語でこちらは敵キャラのようです。

ギャラクシアン

ギャラガ

それでは敵キャラを出現させる方法を考えていきましょう。

敵を出現させる

最初に敵をつくって上部に整列させる必要があります。ピクチャーボックスを使うのですが、そのまま使うのではなく継承して使います。敵にはさまざまなデータ(種類や攻撃パターン)があり、これらをデータとして持たせるには継承したほうがわかりやすいと考えました。

それから敵キャラをまとめて管理するクラスをつくります。

敵は3種類あります。とりあえず色違いで3つ。上段にいる敵は高得点にします。それから敵ははじめ上空で待機していて、ときどき弾丸を撃ちながら降下して攻撃を仕掛けてきます。そのためどのような状態にあるのか、EnemyStatusをみればわかるようにしました。

これで敵を表示させることができます。

敵を整列させた状態で出現させる必要があるときは

  • ゲームスタートのとき
  • ステージクリアして次のステージに進むとき

この2つではないかと思われます。だからForm1クラスのメソッドで作成してしまいましょう。敵それぞれにIDをつけています。

そしてすべての敵を生成したらEnemyManagerに管理させます。

これで敵を表示することができました。そのあと敵を動かす必要があります。

敵を移動させる

自機の弾丸をタイマーをつかって移動させていますが、同じように敵も移動させます。タイマーイベントで扱うこととして

  • 自機の移動
  • 自機から発射された弾丸の移動
  • 待機中の敵の移動
  • 敵を待機状態から攻撃状態へ移行させる
  • 攻撃状態にある敵の移動と弾丸の発射
  • 敵の弾丸の移動
  • あたり判定

があります。

上の2つは終わったので「待機中の敵の移動」をプログラミングしていきます。

が、ちょっと長くなったので次回!