忍者ブログ

うろのなか(工事中)

現在工事中です。色々実験してるのでデザインが大きく崩れます。

【AndEngine】Textについてメモ

AndEngineのText機能を使っていて色々と気になったところがあったのでメモ


  • 文字の色を変えたい
生成したTextでsetColorを行っても色の変更がうまく行かない
調べてみるとどうやらAndEngineのEntityのsetColorメソッド自体が描画したいテクスチャの色を変更するメソッドでは無く、
そのテクスチャの色をどのレベルまで表示させるかを各色0.0~1.0の範囲で指定するというものらしい

(そのテクスチャに対してsetColorで指定した色を乗算すると言ったほうがわかりやすいかも)

なのでsetColorでTextの色を変更させれるようにしたい時は
白い文字のFontを用意してそれでTextを生成すればいい


  • Textの透明度を指定したい
Textに対してFadeOutModifier等を使用すると、うまく動作してくれない場合がある

どうやらBlendFunctionの問題らしいので生成したテキストで
 setBlendFunction( GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA );
を指定してあげればいいっぽい


  • Textで表示する内容を変更したい
教本でもある通りTextクラスのメソッドsetText("変更後の文字列");で変更できる
ただし生成した時の文字数より多くしてしまうとArrayIndexOutOfBoundsExceptionが発生してしまうので
後から内容を変更する可能性があるTextを生成するときは変更した後の文字でも入りきれるような文字数を指定しておくこと


  • 文字を1文字ずつ順番に表示させたい
Text自体にsetCharactersToDraw( int pCharactersToDraw )という引数で指定した数だけ文字を表示させるメソッドが用意されているのでそれを利用すればいい
ちなみに最大文字数はgetCharactersMaximum()で取得できる

拍手[0回]

PR