Libgdx管理资产

时间:2014-01-23 13:40:32

标签: java singleton libgdx assets

我开始使用libgdx开发游戏。现在我想开始管理我所有的assts。我看了this,但这不是我真正需要的。我希望能够在屏幕更改上加载纹理(GameScreen:加载游戏资产,MenuScreen:处理游戏资产,加载菜单资产。)然后随处访问。这就是我想到单身人士的原因。我使用scene2d和图像的子类作为我的游戏角色。构造函数需要一个drawable,所以我需要在我的stage子类中访问它,在那里我创建我的所有字符。我还需要访问我演员的资产,因为如果他们拍摄我想播放拍摄声音。为此,我希望MyAssetManager加载并应用声音首选项(Volume ...),这些首选项与libgdx首选项一起存储。我怎么能意识到这一点?单身人士是个好主意吗?我的资产经理是否应该使用libgdx assetmanager internal?

编辑:我想有一个AssetManager,加载资源和一个SoundManager来播放声音。我将在启动时加载首选项(音量)并将它们保存为变量。纹理被赋予构造函数中的actor。你怎么看待这个?

1 个答案:

答案 0 :(得分:2)

  

我怎么能意识到这一点?单身人士是个好主意吗?我的资产经理是否应该使用libgdx assetmanager internal?

为什么不两者兼而有之?使用AssetManager有许多优点:

  • 大部分资源的加载是异步完成的,因此您可以在加载时显示反应性加载屏幕
  • 资产参考计算。如果两个资产A和B都依赖于另一个资产C,则在A,B和C被处置之前不会处置C.这也意味着,如果您多次加载资产,它实际上将被共享,只占用一次内存!
  • 存储所有资产的单一地点。
  • 允许透明地实现缓存(请参阅下面的FileHandleResolver)

那么,你制作一个Singleton类,使用AssetManager来加载/卸载你的资产。

(顺便说一下,你链接的谷歌代码上的旧维基将不再更新,实际上它只是时间问题才被删除。链接到新的维基:Managing your Assets