ButtonSprite クラス

ButtonSprite クラス
Android でよくつかうButton クラスは
AndEngine では
ButtonSprite クラスを利用して追加する
利用方法は
AnimatedSprite と同じく
TiledTextureRegion を利用してインスタンス化する
registerTouchArea を忘れると
反応しないので注意

オブジェクトをアニメーションするModifier 系クラス

オブジェクトをアニメーションするModifier 系クラス
基本的にアニメーションは
Modifier クラスを組み合わせて実現する
LoopEntityModifier クラス
LoopEntityModifierクラスは
引数として受けとった Modifier クラスの
サブクラスを繰り返し行なうためのクラス
引数は、
順にループさせるアニメーション
ループ回数
となる
SequenceEntityModifier クラス
SequesnceEntityModifieer クラスは
受けとった複数のModifier クラスの
サブクラスを順番に実行するためのクラス
複数のModifier 系クラスのインスタンスを
, で釘てわたすと
最初から順番に実行される
ScaleModifierクラス
拡大、縮小を行なうためのクラス
引数は順に
秒数
元の大きさ
拡大、縮小後の大きさ
となる
アニメーションは使うことが多いため
ゲームをつくるときによく使われる
ScaleModifier など
単独のアクション実行もあるけど
ほとんどの場合は
LoopEntityModifier とか
SequenceEntityModifier を使い
組み合わせて使うことになる

BitmapFontクラス

BitmapFontクラス
Bitmapfontクラスは
フォーマットで作成された
fntファイルからビットマッブフォントを作成するクラス
コンストラクタの引数は
TextureManager
AssetManager
asset
のフォルダーからみたフォントファイルつまり、拡張子が .fnt
への絶対パスになる
インスタンス化した後は
load()
を呼ぶのを忘れないように注意

ビットマップフォントについて

スコアを表示するテキストの実装
assetsへfontフォルダーを作成して、
そこに画像ファイルを配置
あと、フォントファイルも配置しておく
拡張子が
.fntファイルは
pngファイルとセットで
ビットマップフォントを構成するファイルて
ゲーム開発によく使われる
ゲームで使うフォントを前もって
pngへ埋め込み、ゲーム中で利用する
このため、通常のテキストと異なり
自由にフォントや効果を使えるけど
使う文字を前もって登録しておかないといけないため
日本語のように大量の文字を含む言語は向かない
RSSリーダーやToDoリストアプリなどは
どんな内容やテキストを扱うかは
開発段階で断定できないため、全ての文字を含める
ゲームの場合は
使う文字を限定できるため
できるだけビットマップフォントを使う
私の場合、開発環境はuhuntu なため
ubuntu bitmapfont create
て検索してみました
使いやすいツール、フリー素材などあれば
リンクを張ろうと思います

TimerHandler クラス

Timerhandler クラスは
処理が行われるまで送らせる時間と
行なう処理を組み合わせて定義するクラス
第1引数
float pTimerSeconds
処理の実行を送らせる秒数
1を設定すると、1秒後に処理する
第2引数
boolean pAutoReset
処理の自己羽後自動的にもう一度タイマーをしかけるかどうか指定
true なら指定されたじかんごとに無限ループ
省略すると false 扱いになりループなし
第3引数
ITmerCallback pTimerCallback
処理内容記述

AnimatedSpriteクラス

AnimatedSpriteクラスは
通常のTetureRegion クラスではなく
タイル状に画像が配置されたTextureRegion である
TiledTextureRegion クラスの
インスタンスを使う
読み込んだ画像を
パラパラアニメのように再生できる
このパラパラアニメをループさせることで
キャラクターやオブジェクトを表現する
コインの画像がアニメーションする
とはいっってもその場でぐるぐるまわるだけだけど
とりあえず、1枚の画像だと飛んでいる感じがしないから
AnimatedSprite() で3種類の画像を順に表示して回転しているように見せかけている
基本的にゲームは見せかけの動きが多い
TiledTextureRegion クラス
TiledTextureRegion クラスは、
インスタンス化時、
コンストラクタを最後の2つの引数が画像をマス状として見た時の
横のマス数、
縦のマス数
となる
TextureRegion は画像をそのまま描画するけど
TiledTextureRegion は
与えられた横のマスの数
縦のマスの数
に従って同じサイズにリソースを分割して
別々に保持する
BitmapTextAtlasTextureRegionFactory.createfileFromAsset(
tta,
gameActivity,
fileName,
0,
0,
1, 横のマスの数
3 縦のマスの数
);
となる
スマートフォン向けのweb アプリを作る時に
HTML5で画像を読み込むときに
すべての絵を1つのファイルにまとめておいて
そこから切り抜いて使うのと似たような作業になる
IOnSceneTouchListener インターフェースを実装したクラスでは
タッチイベントを受けとることができるようになる

AndEngine でのゲーム開発のポイントメモ

AndEngine でのゲーム開発のポイントメモ
setTouchAreaBindingOnActionDownEnabled(true);
を呼び忘れると
ボタンをタップしたままボタン外へスライドしたときに
画面が戻らなくなる
また、これを設定していないと
Sceneでタッチ&リリースという操作の検出ができない
このため
trueにしておく
開発中または回初子に
ゲーム描画エリアサイズ変更の対処ができるように
座標は絶対値ではなく
相対値で指定する
これなら、後から変更する時のコスト削減ができる

TextureManager クラス  ITextureRegion クラス Spriteクラス

TextureManager クラス
TextureManager クラスは
TextureAtlas クラスを一括管理するクラス
TextureAtlas をインスタンス化した後
TextureManager が上に読み込むkとで描画できるようになる
ITextureRegion クラス
ITextureTegionクラスは
TextureAtlasクラスのインスタンスに
任意の画像パスを渡して読み込んだ状態のクラス
引数は
第1引数
BitmapTextureAtlas pBitmapTextureAtlas
読み込み済みの描画用範囲
第2引数
Context pContext
Context1
第3引数
String pAssetPath
画像のパス
第4引数
int pTextureX
範囲上に読み込むX座標
1つのBitmapTextureAtlas に1つの画像を読み込む場合は0を指定
第5引数
int pTextureY
範囲上に読み込むy座標
1つのBitmapTextureAtlas に1つの画像を読み込むなら0を指定する
TextureAtlas クラスのインスタンスには
複数の画像を読み込むことができるけど
管理が複雑になるし
最近では端末スペックが高いため
徹底的なメモり管理はそこまでしなくてもよくなったため
1つのTextureAtlas クラスに1つの画像としている
この状態は、パソコンのメモり管理にも似ている
次に、Spriteクラス
Spriteクラスは
ITextureRegion を元に実際に視覚化されたオブジェクト
読み込み済みの
ITextureRegionクラスのインスタンスの座標を指定し
インスタンス化する
1つのTextureAtlas クラスのい1つの画像の場合なら
0,0 でOK
Spriteクラスの引数は
第1引数
float pX
配置するX座標
第2引数
float pY
配置するY座標
第3引数
ITextureRegion pTextureRegion
読み込み済みのITextureRegion
第4引数
VertexBufferObjectManager pVertexVufferObjectManager
AndEngine では
Sprite の基準点、つまり座標の0,0
Scene の基準点、つまり 座標 0,0

左上からになる
つまり、座標 0,0 だと画面の左上になる

BitmapTexturAtlas クラス

BitmapTexturAtlas クラス
BitmpTextureAtlas クラスは
画像をオブジェクトして画面に描画する際に
いおったん格納する場所
幅、高さ共に2のべき乗でないといけない
このクラスを利用することでメモり使用量を抑えられる
引数は以下のようになる
第1引数
TextureManager
TextureManager
TextreManager(TextureManager は static)
第2引数
int pWIdth
読み込む画像の幅を上回る最小の2のべき乗の値
第3引数
int pHeight
読み込む画像の高さを上回る最小の2のべき乗の数
第4引数
TextureOptions pTextureOptions
読み込みオプション
メモりを多く消費するタイプのゲームでないなら
BIOILNEAR_PREMULTIPLYALPA
アルファ値の設定が可能
を指定する
2のべき乗とは
2を繰り返しかけた値になる
2 4 8 17 32 64 128 256 512 1024
などになる
メモりなどでよく見る数値