AndEngineでsetTextするとガクッとなる

読んで字の如く

タッチでも、時間経過でもなんでもいいが
Textクラスの表示文字を変える手段であるsetTextを使用すると
一瞬画面がガクッとなることに今更気付いた。
これは色々といけない。

が、ならないときもあるので
これはどういうことだろう?と思い
色々やってみたら暫定的に解決したので載せておきたい。












ちょっとしたカジュアルゲームならともかく
今自分が裏でごそごそ作ってるような
割と文字列を多用し、かつそれが頻繁に切り替わるゲーム、
例えばキャラクターがしゃべるテキストなどがあるゲームで
文字列が切り替わるたびにガクガクなっているのではしょうがない。


ただ、何度もやってるうちに気付いたのは以下の二点。

・短すぎる文字列では特に起こらない(点数が変わる程度など)
・既に一度表示した文字列では起こらない

上はともかく下はどういうことなのか。
Textクラスの中身を眺めてみるとArrayが用意されている。
一度入力した文字列を保持とかしてるのかな?



例えば外部ファイル読み込みなどで
String[] st = new String[10];
st[0] = "rabadon's deathcap";
st[1] = "特定保健用食品";
...
st[9] = "かに道楽";

等の文字列を読み込んでStringに格納したとする。


最初の
text.setText(st[0]);は問題ないが
タッチしたときにtext.setText(st[1]);などやると前述のガクッと現象が発生する。

しかし、そこでもう一度text.setText(st[0]);
とやると今度はスムーズにやってくれる。


上でも言ったが、一度入れた文字列(表示しなくても)は
処理が軽くなるらしい。



というわけで、

...
st[9] = "かに道楽";

for(int i=0;i<10;i++){
  text.setText(st[i]);
}
text.setText(st[0]);


とか読みこんだ後に
一度全部textに放り込んでおくと(表示はしなくてもいい)
以降の表示でがくつくことが無くなった。


ほんとはなんか軽く出来るメソッドとかあるんだろうけどなぁ。
あまり深いところのコードは自分じゃ解読できないからしょうがないね。




今度出る子
famy_def.png

テーマ : ゲーム制作
ジャンル : ゲーム

コメントの投稿

Secret

プロフィール

いすぃ

Author:いすぃ
ゲームを作ってたりゲームしてたり何もしてなかったりしてます

お仕事あれば請け負います。
ゲーム作ってみたい!とか初歩からプログラムやってみたい!って人もご一報ください。

ゲーム面白かったよ!
今後も応援するよ!などなどの意味で下記から心ばかりの支援をしていただけると本当に助かります。
Enty


twitter
ニコニココミュ
pixiv

最新記事
カテゴリ
最新コメント
最新トラックバック
月別アーカイブ
kaunta-
検索フォーム
リンク
スポンサードリンク