2013-04-28 68 views
0

我有兩個紋理要管理。
一個在Gdx.files.internal,一個在Gdx.files.locallibgdx - AssetsManager - 管理多個位置

但它似乎像API限制我可以同時管理一個或另一個,而不是兩個。

經理=新AssetManager(- 只需一個分解器 -`); (TextureAtlas.class,新的TextureAtlasLoader(- 只帶一個旋轉變壓器 -));

和這一個採取只有一個管理器:

Texture.setAssetManager(經理);

有管理2個分解的方法嗎? 或爲兩個位置構建一個解析器?

謝謝!

回答

2

你可以寫一個自定義的FileHandleResolver,如果文件在第一位置上存在,如果不存在的話,檢查第二位置首先檢查。

也許是這樣的:

class MyFileHandleResolver implements FileHandleResolver { 
    public FileHandle resolve(String fileName) { 
     FileHandle localHandle = Gdx.files.local(fileName); 
     if (localHandle.exists()) 
      return localHandle; 
     else 
      return Gdx.files.internal(fileName);  
    } 
} 
+0

感謝。一個具有多個位置的解析器運行良好。我沒有創建文件處理程序,而是檢查是否存在,我使用兩個不同的文件夾作爲內部和本地文件,所以我檢查startsWith(..)並返回正確的解析器。 – auval 2013-04-28 16:23:39