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);
}

请记住最后三个参数,您可以控制填充等。

于 2013-03-19T13:08:45.497 回答