【发布时间】:2017-09-08 13:15:53
【问题描述】:
我知道关于这个问题有很多话题,但就我而言,我发现的唯一一个 here 没有得到回答。
所以我问同样的问题:
我是否需要为仅桌面游戏设置我的 AssetManager 静态?
现在只是总结和澄清手游静态引用问题,假设我也想在手游上使用静态 AssetManager(因为我觉得它更方便)。我知道这会导致纹理在 pause() 上被处理,但我可以在 resume() 上重新加载它们,对吗?
假设我有一个使用纹理 A(之前加载到静态 AssetManager)的播放器动画。如果游戏暂停,AssetManager 引用很可能会丢失。如果在 resume() 方法中我重新创建此 AssetManager (MyGame.asset = new AssetManager()) 并重新加载纹理 A,我的动画会发生什么?我还需要重新加载吗?
我在Texture Javadoc 中找到了这个短语:托管纹理会自动重新加载。我认为这仅对非静态 AssetManager 有效,对吗?
最后几个问题只是在这里总结一下静态 AssetManager 在移动应用上的使用。
【问题讨论】:
-
静态变量在面向对象设计中不好,您应该避免静态引用您的资产,因为静态的生命周期可能与创建资源的上下文的生命周期不同。
-
是的,阿布舍克说的
标签: libgdx