在libgdx中正确使用AssetManager类

时间:2014-04-19 17:03:10

标签: java android libgdx

我正在libgdx中开发一个平台游戏,其中只有很少的关卡和一个在地面上运行的玩家,非常简单的名字。

我刚刚开始使用AssetManager类,我有一个问题:

1)我需要在游戏开始时(例如菜单之前)加载所有tmx地图和所有atlasses。或者我需要在每个级别之前显示加载屏幕并加载所有工作人员吗?

2)用户可以在每次需要时返回菜单屏幕,所以我在菜单前加载菜单员工,只在用户退出游戏时将其卸载?

感谢那些会帮助我的人,并为我可怜的英语感到抱歉。

1 个答案:

答案 0 :(得分:0)

这取决于您的资产有多重。

AssetManager是一个多功能的类,允许您随时以任何顺序执行加载。您声明的所有用例都可以使用AssetManager来实现。


  1. 可以在游戏开始时加载所有tmx地图和所有atlasses。
    可以也可以加载它们。

    现在的问题是你应该做什么。

    • 第一种情况易于实施。减少屏幕变化。更多的初始加载时间(但从未再次)。内存溢出的可能性。
    • 第二种情况被认为是理想的。最初加载时间较短,但每次都必须这样做(也很低btw)。内存效率高。每次都必须切换到加载屏幕。

  2. 菜单也一样。你可以做到这两点。如果菜单是轻量级的,您应该保持加载。每次都准备菜单是个好主意(至少暂停菜单) 仅在内存较难时才为菜单提供加载屏幕。


  3. 由于您拥有如此多的自由,您应该根据每种情况下用户体验的方式做出这些决定。玩家不喜欢被加载屏幕频繁打扰。但让他/她等待他们不会使用的装载水平是没有意义的。

    确保在使用之前加载资产。如果加载代码正在分发,请不要担心load方法的冗余调用。无论您将多少次资源加载到特定资产,AssetManager都会正确加载每个资产一次。

    祝你好运。