libgdx - AssetsManager - 管理多个位置

时间:2013-04-28 11:29:30

标签: java android libgdx

我需要管理两种纹理 一个位于Gdx.files.internal,一个位于Gdx.files.local

但似乎API限制我管理其中一个,而不是同时管理两个。

  

manager = new AssetManager( - 只需一个解析器 - `);

     

manager.setLoader(TextureAtlas.class,new TextureAtlasLoader( - 只需一个解析器 - ));

这个只需要一位经理:

  

Texture.setAssetManager(经理);

有没有办法管理两个解析器? 或者为两个地点建一个解析器?

谢谢!

1 个答案:

答案 0 :(得分: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);    
    }
}