有谁知道为什么会这样?
加载图片的代码:
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);
我收到此错误:
答案 0 :(得分:0)
在构建纹理图集之前,您似乎正在调用loadTexture。
举:
engine.getTextureManager().loadTexture(
this.gameOverAtlas);
engine.getTextureManager().loadTexture(
this.mAutoParallaxBackgroundTexture);
engine.getTextureManager().loadTexture(
this.gameOverAtlas);
在try / Catch块之后。
此外,如果您的纹理与TextureAltas的尺寸相同,除非您将填充和间距参数设置为0,否则它将失败。
另外,如果您制作的纹理图集只包含一个纹理区域,则无需使用可构建的纹理图集。
BuildableTexture地图集的特殊之处在于它将适合您的许多区域进入地图集,这意味着您不需要使用像TexturePacker这样的程序和纹理的texturePacker扩展程序。
答案 1 :(得分:0)
由于它的可构建纹理,而不是正常纹理,你用不同的方式加载它
try
{
gameTexture.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 0, 1));
gameTexture.load();
}
catch (TextureAtlasBuilderException e)
{
Debug.e(e);
}
请记住最后3个参数,你可以控制填充等。