c# – 在XNA中处理多个类的纹理加载和访问的最佳方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 在XNA中处理多个类的纹理加载和访问的最佳方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1144字,纯文字阅读大概需要2分钟。
内容图文
![c# – 在XNA中处理多个类的纹理加载和访问的最佳方法?](/upload/InfoBanner/zyjiaocheng/815/342a7bdb7a574f4fb05c567e45b31727.jpg)
所以我有一个简单的XNA项目正在进行中.基本上我的问题是如何处理纹理加载并确保从其他类可以正确访问这些纹理?
例如,我看过的每个教程,以及我从XNA的实际逻辑中可以看出的,你应该在LoadContent()方法中加载纹理.但是,假设我有另一个类,Level,它需要自己独特的纹理集,在其中我创建了一个我的Player对象的实例,它也需要自己的纹理,当然还有敌人和其他一切.
我可以做的一种方法就是在构造函数中加载特定类所需的纹理,但为此我需要设置一个新的内容管理器或将内容管理器传递给每个构造函数,这看起来既笨重又外意图是什么
因此,当涉及到使用2个纹理的小型教程的完整项目时,实现加载它们的最佳方法是什么?
解决方法:
根据需要创建任意数量的ContentManager类.
每个人都是独立的.在每个内容管理器中,资源(例如:纹理)被重用 – 但是如果在两个不同的内容管理器中加载相同的纹理,则会得到两个不同的实例(尽量避免这种情况).
您无法卸载(Dispose())ContentManager加载的各个资源.您只能卸载()整个内容管理器(处理它加载的所有内容).这可能会影响到何时创建内容管理器的任何决定.
您可能希望每个级别创建一个ContentManager.然后有另一个ContentManager来处理不需要在级别之间卸载的东西(例如:你的玩家或敌人对象需要的东西).
传递ContentManager的实例也没有错.
当然,对于简单的游戏,使用单个ContentManager通常最简单,而不用担心卸载东西.
内容总结
以上是互联网集市为您收集整理的c# – 在XNA中处理多个类的纹理加载和访问的最佳方法?全部内容,希望文章能够帮你解决c# – 在XNA中处理多个类的纹理加载和访问的最佳方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。