2013-11-04 75 views
0

在我的测试程序的Android版本中,首先运行它的一切都很好,但随后运行它,所有纹理都是白色块。libGDX所有纹理/精灵白色块

但是桌面版本没什么问题,它只有Android。另外,如果我在发布或调试时通过Eclipse运行程序,它也可以每次运行。

什么修复它是如果我去任务管理器和'清除记忆'。

我在启动时加载我的spritesheet,我很确定我正在处理所有内容。

什么可能是错的?

回答

0

修正了它。我想我知道为什么,但不是100%

在我班:公共类GameGraphics实现一次性{

我做了这个一个单:

public static GameGraphics getInstance(){ 
    if(spritesInstance==null) { 
     spritesInstance=new GameGraphics(); 

     spritesInstance.spriteSheet = new Texture(Gdx.files.internal("data/sprite_sheet.png")); 
     spritesInstance.sprites=TextureRegion.split(spritesInstance.spriteSheet, 32, 32); 
     for(TextureRegion r : spritesInstance.sprites[0]) r.flip(false,true); 
    } 
    return spritesInstance; 
} 

所以处理被调用时,纹理中被毁libGDX但我的实例仍然存在。为什么? libgdx/opengl有没有其他的问题?

+0

这根本不是一个“陷阱”。如果你没有将你的实例重置为'null',那么在一个自制的Singleton中,你不能认为这是libgdx的错误......你应该使用AssetManager来处理这样的东西。它专门为这项工作而设计。 – noone

+0

干杯,我的意思不是libgdx/opengl中的错误,但更多的是我读了十几次代码,这一切对我来说都很好。我想我只是假设,因为处置被称为我的指针也是:) 我还没有看过AssetManager,刚开始。 –