今年の6月に開催したScratch day in 那須町に向けて作成していた、オマージュシリーズ第三弾のMissile CommandのV1.0をようやくアップデートした。
Missile Commandは高校生の時にゲーセンでよくプレイしていたゲームで、打ちまくって守るというシューティングの一種。サーカス、キネコに続いて、絶対にScratchで作ってみたかったゲーム。
実装してみたかった機能の半分程度しかできてないけど、Scratchの勉強にはとても役立った。時間がかかってしまったのは上から降ってくる敵のミサイルの実装。当初はすべてのミサイルをクローンで作ろうとしたけど、ミサイルが分離する部分の制御が書ききれず、複数のスプライトに分けてしまった。同じく基地もクローンできなかった。
Scratchのスプライトはクラスではなくプロトタイプだと阿部さんのコメントがあり、それでクローンの意味が少しつかめた。クローンあとに何をすればいいのか、自然と見えてきて、かなりシンプルに書けたと自分では思っている。これなら敵のミサイルは1つのスプライトでできそうだ。
敵ミサイルと基地や弾幕の衝突、どうしてもスプライト衝突のイベントが拾えなくて迷ったけど、実は単純なミスをしていて、敵ミサイルのスプライトを消去していたためだった。小さい点を描いたら衝突イベントが取れるようになった。ガクッときてけど、気づけたおかげで、色判定で余計なことを感がずにすませられた。
まだ使っていない変数の削除ができていなかったりとコードはひどいけど、少しづつノウハウが蓄積されてきて、人のコードを見ても理解が早くなってきた。
第四弾はどうしようかな。正月の那須ラボ冬の宿題で作ろうかな。