2013-11-04 118 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,剛開始。 –