Все мои спрайты (которые сами по себе являются прямоугольниками, но разных цветов) отображаются как черные ящики при второй загрузке активности andengine. Это странно, потому что обычно эта проблема связана с тем, что атлас текстур недостаточно велик, но я попытался удвоить размер атласа, и это не сработало. Итак, вот соответствующий код, любая помощь будет очень признательна!
Итак, чтобы выразить это, в первый раз, когда я загружаю свою игру, все в порядке и идеально, но во второй раз спрайты кажутся черными.
Я видел другие вопросы, где спрайты отображаются в виде черных ящиков, но для меня они загружаются нормально с первого раза, чего не происходит с другими вопросами, и ответы, которые были даны на другие вопросы, не работали для меня (они были, атлас должен быть степенью двойки, а атлас недостаточно велик)
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;
}
Причина, по которой я прокомментировал раздел, придающий тайловым текстурам нулевое значение, заключается в том, что это по какой-то причине создало ошибку nullException, хотя я думал, что текстурные области будут переназначены текстурами при перезагрузке активности, поскольку перезагрузка активности вызывает метод loadgameresources()