2014-11-16 91 views
1

我在靜態類中爲我的遊戲存儲紋理。它們從一個管理器加載到這個類的靜態數組中。libGDX在靜態類中處理紋理

每個屏幕都有一個處理方法,但我應該在哪裏調用處理紋理。 libGDX只處理應用程序出口,因此我應該在每個屏幕上處理紋理?

回答

3

把靜態數組放在靜態類中是一個壞主意。當您最小化遊戲或其他類似情況時,管理內存和控制哪些紋理將被GC刪除非常困難。

我建議您使用AssetManager來加載和處理您的資源。您可以在這裏找到許多有關AssetManager和資源管理的有用信息Managing your assets

關於第二個問題:我不建議您在更換屏幕時處理/加載所有紋理。我用另一個方法:

  1. 在遊戲開始顯示加載屏幕,並加載所有可用經常紋理(如按鈕,主菜單中的圖形,主要角色,對話等)與AssetManager。如果你的遊戲很小,你可以在這裏加載所有的遊戲紋理。
  2. 在遊戲關閉之前不要處理這些紋理。
  3. 當您更改屏幕時,嘗試加載/處理動態紋理(例如,如果您的每個關卡具有不同的背景,則可以加載/處理此背景)。
  4. 總是使用Texture packer爲您的圖形。
  5. 使用tinypng爲了壓縮你的.png圖形。

P.S如果您想將所有紋理或任何其他資產保存在一個類中。創建Singltone類將保存Map<String,Texture>其中String是紋理或完整路徑的名稱。