重装andengine时用黑盒而不是精灵

时间:2014-07-24 20:11:16

标签: andengine sprite texture-atlas

我的精灵(它们是盒子本身,但颜色不同)在第二次载入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()方法

1 个答案:

答案 0 :(得分:0)

得到答案的人.. System.exit(代码)确保活动正确退出。失望的stackoverflow无法回答这个问题!