LibGDX中的AssetManager

时间:2012-03-07 15:06:32

标签: java android loading assets libgdx

我正在尝试使用LibGDX中的AssetManager类,我理解它是如何工作的,但我正在尝试实现加载屏幕。我已关注AssetManagerTest.java文件here, 但我正在努力弄清楚如何让它正常工作。有人能指出我正确的方向吗?我的目标是加载资源(纹理,声音,字体等),并在屏幕上更新完成百分比的栏。我不理解我提供的链接中的ResolutionFileResolverResolution[]。它们适用于什么?我的目标是支持一个静态类,它可以让我从任何屏幕访问我在游戏中需要的所有资产。有没有一种首选的方法来做到这一点?感谢。

1 个答案:

答案 0 :(得分:7)

在查看ResolutionFileResolver以及其他'解析器'的来源之后,我认为这只是一种加载与屏幕分辨率最匹配的纹理的方法,但匹配仅基于文件名模式。

所以在AssetManagerTest中,他的屏幕尺寸为320x480,480x800和480x854。看起来每组纹理应该位于名为“.320480”或“.480800”或“.480854”的目录中(尽管名称可以是您想要的任何名称,例如“低”,“高”和“宽”如果这些是您的目录),并且他在测试line 56上创建解析器数组时指定了所有这些信息。

完成所有这些工作的好处是,当他调用manager.load()时,他只会选择像“data / animation.png”这样的文件名。然后解析器找到最接近当前屏幕分辨率的纹理包,并加载那个纹理。

我认为示例的其余部分应该非常清楚,至少对于AssetManager的基础知识。创建一个管理器,设置加载器,调用load(),调用get()以使用它,然后在完成后调用unload()

要更新进度条,您只需在每次加载调用后手动执行此操作。

使用静态类进行资产管理当然是一种可能性。另一个类似的选择是使用单身人士。它有它的仇恨,但我认为在垃圾收集环境中的一个简单项目中应该没问题,尽管它和公共静态一样。

另一种选择 - 也许是最好的? - 是使用具有游戏全局变量的静态副本的基类,然后所有其他游戏类继承它。这是Replica Island中使用的方法。请参阅base classobject registry。 Replica Island评论很好,值得一试Android和安卓。 Java游戏。