2013-04-28 4 views
0

У меня есть две текстуры для управления.
Один находится в Gdx.files.internal, а один - в Gdx.files.local.libgdx - AssetsManager - управляет несколькими местоположениями

Но, похоже, что API ограничивает меня управлением тем или иным, а не одновременно.

менеджер = новый AssetManager (- занимает только один распознаватель - `);

manager.setLoader (TextureAtlas.class, новый TextureAtlasLoader (- принимает только один преобразователь -));

и это один принимать только один менеджер:

Texture.setAssetManager (менеджер);

Есть ли способ управлять двумя резольверами? Или создать один резольвер для двух локаций?

Спасибо!

ответ

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

Спасибо. Один резольвер с несколькими местоположениями работает хорошо. Вместо создания обработчика файлов и проверки наличия я использую две разные папки для внутренних и локальных файлов, поэтому я проверяю startWith (..) и возвращает правый резольвер. – auval

Смежные вопросы