在查看了ResolutionFileResolver以及其他“
resolver”的来源之后,我认为这只是一种加载与屏幕分辨率最匹配的纹理的方法,但是该匹配仅基于文件名模式。
因此,在中
AssetManagerTest,他获得了屏幕尺寸为320x480、480x800和480x854的纹理。看起来每组纹理都应位于名为“
.320480”或“ .480800”或“ .480854”的目录中(尽管名称可以是您想要的任何名称,例如“ low”,“ high”和“ wide”
(如果这些是您的目录),那么他在测试的第56行上创建解析器数组时会指定所有这些信息。
做所有这些事情的好处是,当他打电话时
manager.load(),他只是选择一个文件名,例如“ data
/ animation.png”。然后,解析程序会找到与当前屏幕分辨率最匹配的一组纹理,并加载该纹理。
我认为示例的其余部分应该非常清楚,至少对于的基础而言
AssetManager。创建一个管理器,设置加载器,调用
load(),调用
get()以使用它,
unload()完成后调用。
要更新进度条,您只需在每次调用加载后手动进行。
使用静态类进行资产管理当然是一种可能。另一个类似的选择是仅使用单例。它有它的仇恨,但是我认为在垃圾收集环境中的一个简单项目中,它应该可以,尽管它与公共静态对象差不多。
另一个选择-也许是最好的选择-
是使用具有游戏全局变量静态副本的基类,然后所有其他游戏类都从该类继承。这是副本岛中使用的方法。请参见基类和对象注册表。复制岛(Replica
Island)受到好评,值得一试的Android和Java游戏。



