我的精灵(它们是盒子本身,但颜色不同)在第二次载入andengine活动时都显示为黑盒子。这很奇怪,因为通常这个问题是由于纹理图集不够大,但我尝试将图集的大小加倍,这并没有起作用。所以这里是相关的代码,非常感谢任何帮助!
所以要把它放在那里,第一次加载我的游戏,一切都很好而且很完美,但第二次,精灵显得很黑。
我已经看到其他问题,精灵出现在黑盒子上,但对我来说,他们第一次装好,其他问题没有发生,而其他问题给出的答案不适用于我(他们是,atlas需要两个人的力量,而地图册不够大)
public void loadGameResources(){
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
gameTextureAtlas = new BuildableBitmapTextureAtlas(activity.getTextureManager(), 512, 512, TextureOptions.BILINEAR);
blackTile = BitmapTextureAtlasTextureRegionFactory.createFromAsset(gameTextureAtlas, activity, "blacktile.png");
greyTile = BitmapTextureAtlasTextureRegionFactory.createFromAsset(gameTextureAtlas, activity, "greytile.png");
redTile = BitmapTextureAtlasTextureRegionFactory.createFromAsset(gameTextureAtlas, activity, "redtile.png");
greenTile = BitmapTextureAtlasTextureRegionFactory.createFromAsset(gameTextureAtlas, activity, "greentile.png");
Log.d(gameTextureAtlas+"","didn'tignore");
loadFont();
try{
Log.d("LOPOLL","arrived");
gameTextureAtlas.build(new BlackPawnTextureAtlasBuilder<IBitmapTextureAtlasSource, BitmapTextureAtlas>(0, 1, 0));
Log.d("boom","arrived");
gameTextureAtlas.load();
Log.d("gotHere","arrived");
}catch(Exception e){
Log.d("WrongPlace","arrived");
}
}
(资源卸载方法)
public void unloadGameResources(){
if(gameTextureAtlas !=null){
gameTextureAtlas.unload();
}
gameTextureAtlas = null;
// blackTile = null;
// greyTile = null;
// redTile = null;
// greenTile = null;
}
我评论给tiletext一个空值的部分的原因是,由于某种原因这样做会创建一个nullexception错误,即使我认为在重新加载活动时,textureregions将被重新分配纹理,因为重新加载活动会调用loadgameresources()方法
答案 0 :(得分:0)
得到答案的人.. System.exit(代码)确保活动正确退出。失望的stackoverflow无法回答这个问题!