壊れたメガネ

ホッチキスの達人の意識の高いブログ。

AndEngine で android シューティングゲーム作る

最近は AndEngine を使って 2D ゲーム作ってみています。
とりあえず簡単なシューティングゲームだろうなということでやっています。
いろいろとハードルがあって最初は難儀しました。その中でも tiled の扱いには苦しめられました。その次に twitter
tiled はマップ作成ツールです。用意したマップチップ画像を元にマップを定義し、 XML の形で tmx というサフィックスをつけて保存します。(Tiled Map XML の略かな?)
今作っているものがとりあえず形になったらこのあたりまとめたいなぁと思っています。

マーケットに出すまではやるつもりなので、その時はぜひかまってあげてください。

エミュレータで実行している様子をスクリーンショット撮ってみましたが、はっきりいってしょぼすぎて泣けるレベルです。
緑のスプライトが enemy で、ピンクが fighter です。

f:id:oasynnoum:20120318004915p:plain:w500

画面左隅のでかいコントロールを使って fighter を操作しています。それを enemy が追っかけている一枚です(苦笑)
個人的にシューティングと言えば横スクロールもしくは縦スクロールなイメージが強いのですが、今作ろうとしているのは RPG 的な広い世界(マップ)を行ったり来たりして敵を撃ち落とす感じのやつです。ドラクエなんかだとマップの北目指すといつの間にか南に出てるとかそんな感じです。

AndEngine では画面上を動くオブジェクトを Sprite というオブジェクトで定義しています。
さらに画面上を動くオブジェクトに摩擦や速度、力などを定義するための Body というオブジェクトが Sprite とは別に用意されています。
前置きが長くなりましたが、僕が今やっていることは Body と Sprite のコンポジションを Floatable というクラスで定義して、シューティングゲーム用のメソッドを追加・実装するということです。
雑ですが UML 作って見ました。
f:id:oasynnoum:20120318014145p:plain

いまから爆発のエフェクトとか実装します。
ちなみに UMLgliffy という WEB サービスを使いました。便利過ぎてちびりそうになりました。