これまでシューティングゲームをいくつか作ってきましたが、ひとつひとつの敵をランダムに出現させて移動させるだけで編隊攻撃を仕掛けてくるようなものは作ってきませんでした。

いつもお世話になっているT.Umezawaさんにスクランブルを真似してつくったゲームのテストプレイをしていただいたのですが「面白くない」とのこと。鳩が作ったゲームが面白くないのではなく、元にしたスクランブル自体が面白くないという言葉にT.Umezawaさんの愛を感じます。

うーん。たしかにこっちのほうが面白そうに見えます。

ということで、今回は編隊攻撃を実装することにします。

HTML部分

ページが読み込まれたときの処理

ページが読み込まれたらcanvasサイズを調整して背景を黒で塗りつぶします。

index.js

Enemyクラスの定義

敵を移動させ描画するためにEnemyクラスを定義します。Update関数で敵を移動させます。また敵の座標はthis.Timeから計算されますが、これを変えることで座標をずらして編隊のようなものをつくります。

index.js

編隊の生成

ボタンをクリックしたら敵を生成して編隊をつくります。

更新処理

編隊攻撃を実装する

Enemy.Update関数を定義することで編隊攻撃が可能になります。

急接近して待避する編隊

急接近してそのあと上方に待避する動作をする編隊を実装します。

ジグザグ攻撃

ジグザグ攻撃をする編隊を実装します。

回転攻撃

回転しながら下に移動する編隊を実装します。

8の字攻撃