AndEngine 画像が表示されず真っ黒になる。バグったように表示される。
最近 AndEngine の研究をしていますが、超単純なミスで詰まったのでメモ
背景を PNG から読み込んで、表示しようと試みたのですが、
いろいろと頑張っても表示されず、
エミュレータでは画面がバグったように表示、端末では、真っ黒、
ただ、他の画像だと表示された・・・
AndEngine の記事などを読んでいるとちょっとした設定で真っ黒になることがあるとのことで
いろいろとググって見たのですが、詳しい日本語の情報が少なく、発見出来ませんでした。
結論から言うと、超初心者的ミスで、単にファイル名が間違っていただけでした。
ファイルが存在しないなら exception を吐いてくれればいいのに不親切だなと思いました。
まあプログラミングをやっているとよくあるミスではありますが、
他の方でも同じような感じの場合、初心に戻って単純ミスを確認しましょう。
簡単にですが、下記のような感じです。
String fileName = "test.png";
InputStream is = null;
try {
is = activity.getResources().getAssets().open("gfx/" + fileName);
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bm = activity.decodeStream(is);
BitmapTextureAtlas bta = new BitmapTextureAtlas(
activity.getTextureManager(),
getTwoPowerSize(bm.getWidth()),
getTwoPowerSize(bm.getHeight()),
TextureOptions.BILINEAR_PREMULTIPLYALPHA);
activity.getEngine().getTextureManager().loadTexture(bta);
ITextureRegion btr = BitmapTextureAtlasTextureRegionFactory.createFromAsset(bta, activity, fileName, 0, 0);
Sprite s = new Sprite(0, 0, btr,activity.getVertexBufferObjectManager());