Andengine动态纹理有时不加载

时间:2014-01-21 08:31:38

标签: android andengine

我遇到动态加载纹理的问题。

当用户双击屏幕时,背景和其他精灵会发生变化。没有产生错误,但有时清除纹理并且不加载新纹理。

这是我最初的onCreateResource

ITextureRegion BackgroundTextureRegion;
BitmapTextureAtlas MainTexture1;

//Initiate Textures
MainTexture1 = new BitmapTextureAtlas(this.getTextureManager(),1000,1000, TextureOptions.BILINEAR);

//Clear Textures
MainTexture1.addEmptyTextureAtlasSource(0, 0, 1000,1000);

//Assign Image Files to TextureRegions
BackgroundTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(MainTexture1, this, "Evening.jpg",0,0);

//Loading the Main Texture to memory
MainTexture1.load();

在此之后才有问题。在此之后,当用户双击或滑动背景时,我会动态更改纹理。这是代码:

MainTexture1.clearTextureAtlasSources();
    MainTexture1.addEmptyTextureAtlasSource(0, 0, 1000,1000);
    BitmapTextureAtlasTextureRegionFactory.createFromAsset(MainTexture1, this, "WinterNight.jpg",0,0);

这通常会改变纹理,我得到了理想的结果。但是在某些设备(例如,三星Tab 2)中,MainTexture1中的1次被清除,但未加载新图像。

所以它只是一个黑屏,我该怎么纠正呢?

2 个答案:

答案 0 :(得分:0)

MainTexture1.clearTextureAtlasSources();
 //   MainTexture1.addEmptyTextureAtlasSource(0, 0, 1000,1000);
BitmapTextureAtlasTextureRegionFactory.createFromAsset(MainTexture1, this, "WinterNight.jpg",0,0);
MainTexture1.load();

试试这个

答案 1 :(得分:0)

      runOnUiThread(new Runnable() {
            @Override
            public void run() {
                MainTexture1.clearTextureAtlasSources();
   MainTexture1.addEmptyTextureAtlasSource(0, 0, 1024, 1024);
BitmapTextureAtlasTextureRegionFactory.createFromAsset(MainTexture1, this, "WinterNight.jpg",0,0);
MainTexture1.load();
            }
        });

喜欢这个。

如果它不起作用,请尝试创建另一个textureatlas而不是相同的图集。