我遇到动态加载纹理的问题。
当用户双击屏幕时,背景和其他精灵会发生变化。没有产生错误,但有时清除纹理并且不加载新纹理。
这是我最初的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次被清除,但未加载新图像。
所以它只是一个黑屏,我该怎么纠正呢?
答案 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而不是相同的图集。