所以我有一个简单的XNA项目正在进行中.基本上我的问题是如何处理纹理加载并确保从其他类可以正确访问这些纹理?
例如,我看过的每个教程,以及我从XNA的实际逻辑中可以看出的,你应该在LoadContent()方法中加载纹理.但是,假设我有另一个类,Level它需要自己独特的纹理集,并在其中创建我的Player对象的实例,它也需要自己的纹理,当然还有敌人和其他一切.
我可以做的一种方法就是在构造函数中加载特定类所需的纹理,但为此我需要设置一个新的内容管理器或将内容管理器传递给每个构造函数,这看起来既笨重又外意图是什么
因此,当涉及到使用2个纹理的小型教程的完整项目时,实现加载它们的最佳方法是什么?
根据ContentManager需要创建任意数量的类.
每个人都是独立的.在每个内容管理器中,资源(例如:纹理)被重用 - 但是如果在两个不同的内容管理器中加载相同的纹理,则会得到两个不同的实例(尽量避免这种情况).
您无法卸载加载的Dispose()单个资源ContentManager.您只能Unload()使用整个内容管理器(处理它加载的所有内容).这可能会影响到何时创建内容管理器的任何决定.
您可能希望ContentManager每个级别创建一个.然后用另一个ContentManager来处理不需要在各级之间卸载的东西(例如:你Player或敌人对象需要的东西).
传递ContentManager周围的实例也没有错.
当然,对于简单的游戏来说,使用单个游戏通常最简单,ContentManager而不用担心卸载东西.
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |