LibGDX中的AssetManager

Ale*_*yer 6 java android assets loading libgdx

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

Ste*_*ell 7

看源后ResolutionFileResolver以及其他"解析器",我认为这只是加载纹理最符合屏幕分辨率的一种方式,但比赛正是基于文件名模式.

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

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

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

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

使用静态类进行资产管理肯定是一种可能性.另一个类似的选择是使用单身人士.它有它的仇恨,但我认为在一个垃圾收集环境中的一个简单的项目它应该没问题,虽然它与公共静态大致相同.

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