はじめに

Android標準フレームワークでゲーム作ろうとすると独自にゲーム用のフレームワークみたいなのを作ってやらないと、パフォーマンスとか汎用性が出せす詰みます。
カジュアルゲームとかサクッと作れるAndEngineに手を出すことにしました。

参考書籍

AndEngineでつくるAndroid 2Dゲーム(著:立花 翔)

AndEngineとは

- LGPLライセンス

書籍の目次

     1. 開発環境の準備
     2. ゲーム共通で仕様できる部分の実装
     3. 投げ系ゲーム
     4. 横スクロールゲーム
     5. 加速度センサーを利用したゲーム
     6. 広告とランキング機能の実装について解説
付録. 逆引きリファレンス

サンプルダウンロード


AndEngineのダウンロードとインポート


スクリーンショット 2012-12-23 23.02.25.png

スクリーンショット 2012-12-23 23.02.31.png

スクリーンショット 2012-12-23 23.02.46.png

Androidプロジェクト作成

基本的には普通に作成すればOK
スクリーンショット 2012-12-23 23.05.01.png

スクリーンショット 2012-12-23 23.05.13.png

スクリーンショット 2012-12-23 23.05.26.png

スクリーンショット 2012-12-23 23.05.37.png

スクリーンショット 2012-12-23 23.06.18.png

ライブラリとして読み込む設定

スクリーンショット 2012-12-23 23.07.07.png

AndroidManifest.xmlの編集


- Android SDKのVersionを13にする
- アプリケーションのテーマを一括で「Theme.NoTitlBar」に変更
- Activityの無駄な再スタートを禁止

スクリーンショット 2012-12-23 23.20.39.png

レイアウトファイルの編集

デフォルトで配置されているTextViewを削除し、org.andengine.opengl.view.RenderSurfaceViewを表示させる。


スクリーンショット 2012-12-23 23.44.38.png

ActivityとSceneの作成

スクリーンショット 2012-12-23 23.45.55.png



MainActivityの修正

広告やWebViewの追加を考慮してSimpleLayoutGameActivityを継承する。
XML Layoutを使わずにゲームを描画する際は、SimpleBaseGameActivityを使う。

BitmapTextureAtlasクラス

画像をオブジェクトとして画面に描画する際、いったん格納する場所。
幅、高さ共に2のべき乗でなければならない。

このクラスを利用することでメモリの使用量を抑えることができる。

第4引数の読み込みオプションは、メモリを多く消費するタイプのゲームでなければ
「BILINEAR_PREMULTIPLYALPHA(アルファ値の設定が可能)」を指定する。

TextureManager クラス

TextureAtlasクラスを一括して管理するクラス。
TextureAtlasをインスタンス化した後、TextureManager上に読み込むことで描画できるようになる。

ITextureRegion クラス

TextureAtlasクラスのインスタンスに、任意の画像のパスを渡して読み込んだ状態のクラス。
TextureAtlasクラスのインスタンスには、複数の画像を読み込むことができるが、
管理が複雑になる上に、そこまで徹底的にメモリの管理を気にしなければならなくなるケースは少ない為、1つのTextureAtlasクラスに1つの画像とするのが良い。

Sprite クラス

ITextureRegionを元に、実際に視覚化されたオブジェクト。
読み込み済みのITextureRegionクラスのインスタンスの座標を指定し、インスタンス化する。
1つのTextureAtlasクラスに1つの画像の場合は、座標指定は(0,0)で問題ない。
画面左上が(0,0)