0

奇妙なエラー

なぜこれが起こっているのか誰にも分かりますか?

画像をロードするコード:

 gameOverAtlas = new BuildableBitmapTextureAtlas(
                activity.getTextureManager(), 1024, 1024,
                TextureOptions.DEFAULT);

deathScreen1 = BitmapTextureAtlasTextureRegionFactory
                .createFromAsset(gameOverAtlas, activity,
                        "deathscreen1.png");

engine.getTextureManager().loadTexture(
            this.gameOverAtlas);
    engine.getTextureManager().loadTexture(
            this.mAutoParallaxBackgroundTexture);
    engine.getTextureManager().loadTexture(
            this.gameOverAtlas);

    try {
        this.gameTextureAtlas
                .build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(
                        0, 1, 0));
        this.gameTextureAtlas.load();

        this.gameOverAtlas
                .build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(
                        0, 1, 0));
        this.gameOverAtlas.load();

        this.playerAtlas
                .build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(
                        0, 1, 0));
        this.playerAtlas.load();

    } catch (final TextureAtlasBuilderException e) {
        Debug.e(e);
    }
}

次に、スプ​​ライトを取り付けます。

gameOverScreen =  new Sprite(0, 0, 650, 400, ResourceManager.getInstance().deathScreen1,vbom);

    attachChild(gameOverScreen);    

次のエラーが表示されます。 ここに画像の説明を入力

4

2 に答える 2

0

テクスチャ アトラスを構築する前に loadTexture を呼び出しているようです。

動く:

engine.getTextureManager().loadTexture(
        this.gameOverAtlas);
engine.getTextureManager().loadTexture(
        this.mAutoParallaxBackgroundTexture);
engine.getTextureManager().loadTexture(
        this.gameOverAtlas);

try/Catch ブロックの後。

また、テクスチャが TextureAltas の寸法と同じサイズの場合、パディングとスペーシング パラメータを 0 に設定しない限り失敗します。

余談ですが、単一のテクスチャ領域のみを含むテクスチャ アトラスを作成する場合は、ビルド可能なテクスチャ アトラスを使用する必要はありません。

BuildableTexture アトラスの特別な機能は、多くの領域をアトラスに適合させることです。つまり、TexturePacker のようなプログラムや andengine の texturePacker 拡張機能を使用する必要はありません。

于 2013-03-18T22:13:01.940 に答える
0

通常のテクスチャではなく、ビルド可能なテクスチャであるため、少し異なる方法でロードしています

try
{           
    gameTexture.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 0, 1));
    gameTexture.load();
}
catch (TextureAtlasBuilderException e)
{
    Debug.e(e);
}

最後の 3 つのパラメーターに注意してください。パディングなどを制御できます。

于 2013-03-19T13:08:45.497 に答える