シューティング・ゲームが出来た。色々とenchant.jsの問題点も見えてきた気がする。

2012/10/27

「enchant.jsスマートフォンゲーム開発講座」のサンプルプログラムであるシューティングゲームが完成!

キーボード、マウスクリックでもタッチでも動くものが出来た!

サンプルプログラムでは、enchant.jsのintersect()関数で、衝突判定を行なっていた。しかし、これだとスプライト全体で衝突判定を行うため、透明部分の多い自機と敵の衝突判定では、明らかにぶつかってないのに衝突してしまう。ここは、within()関数で書きなおして、スプライト同士の中心距離が一定以下になったら衝突したものとする。

intersect()関数をスプライト全体のレクタングルで衝突判定するのでなく、衝突判定用のレクタングルを内部に持つように処理した方が美しいかもしれない。

あとゲームエンド画面の前に、自機が敵とぶつかったときの爆発処理を入れる。爆発処理といっても、すぐにエンド画面になるので、爆発オブジェクトのframeに15を指定して、いきなり爆発映像になるよう処理した。

ついでに敵を撃ったときの爆炎のサイズも大きくした。爆炎に敵が重なって一時的に見えなくなるので、これでゲームの難易度が少し上がる。これでもキーボード操作では簡単過ぎるが、スマホでタッチ操作なら、ほどよい難易度になったのではないだろうか。

まー、最大の問題はiPhoneでは音が出ないこと。。。これはまだ原因が不明。これではスマホアプリと呼べないのが残念。enchant.jsの問題か、iPhoneブラウザの問題かの切り分けもまだ出来ていない。う〜む謎だ。