游戏组件——总结

摘要:
总之,您的小型游戏引擎现在有三个新的名称空间,它们不仅用于显示记分牌等游戏数据,还用于在单元测试中显示帮助文本;显示测试数据或调试数据特别有用。相机类单元测试可以输出相机位置和旋转值,以查看测试运行时发生的情况。你喜欢这里开发的简单游戏。然而,编写简单的2D游戏并不具有艺术性。学习如何在XNA中编写自己的3D图像引擎。您可能不太关心底层图像引擎代码。

总结

你的小游戏引擎现在有了三个新命名空间,也有许多辅助类可以用在未来的项目中。新的TextureFont 类在下面几章尤其有用。它不仅仅在显示诸如记分板这样的游戏数据上有用,也在单元测试中被使用;为了告诉用户所有可用的热键,在单元测试中显示帮助文本非常有用;万一你遇到问题,显示测试数据或者Debug数据尤其有用。例如,一个camera类的单元测试能输出摄像机的位置和旋转值以便于看出当测试运行时发生了什么。

我希望这四个章节读起来有趣,你喜欢这里开发的简单游戏。街机游戏是有趣,不过只编写简单的2D游戏是没有艺术感的,如果你编写下一个Pong克隆,你肯定也不会更关注。学习的目的是介绍所有的辅助类,以及学习更多的敏捷方法学,单元测试,拥有这些真正的项目非常有用,而不是只谈一些运用上以及无聊的辅助类的理论。

无论如何,在本书下一章,你将投入3D图像的世界,学习如何在XNA中编写自己的3D图像引擎。你不是真的要成为一个数学教授,来理解如何在屏幕上渲染一个模型。归功于XNA和内容管道,不涉及太多关于底层的数学和3D几何学知识,在屏幕上渲染3D数据是可行的。如果你正式3D图像编程,你当然应该知道向量、矩阵,以及如何用正确的顺序操作它们。在3D游戏编程世界中,有许多技巧和知识在问题的周围,不但需要一个聪明的人,而且需要你不断获悉这个领域的新发展。

如果你是一个游戏程序员,你可能不太关心底层的图像引擎代码,只想关注在游戏本身。然而大多数人只想创建一些炫酷的游戏,这通常也意味着他们不得不创建图像引擎,因为没有更完美的3D引擎可以获得,游戏中的每个特效可能需要另外的方式渲染3D数据。在本书最后的部分讨论更多关于游戏编程之后,你的游戏引擎足够完成更复杂的游戏。

最后看一眼你在前几章学过了什么:

  • 写下你的想法,并尽可能发展为一个限于一页纸的小构思是非常重要的。

  • 为了解决问题,你使用了自顶向下的途径,并且你使用了单元测试。

  • 你学习了处理用户输入,播放声音,绘制精灵。在XNA中所有这些相当容易完成,不过为了避免一遍遍的重复相同的代码,你把它们放到辅助类中

  • 大量的辅助类被引入,以帮助你渲染字体纹理、处理字符串、遍历枚举、操作色彩,写下日志文件,以及更多。

  • 在每个游戏中都需要你编写某种碰撞检测。在前两个游戏,你使用了BoundingBox 结构体来检查2D碰撞,本章你在Tetris grid中的MoveBlock方法里,亲自处理了所有碰撞。

  • 单元测试的规则,我不再经常重复。尤其是静态单元测试帮了你很多,并且使本章创建的游戏好玩得多,并且比不使用单元测试更加富有成效。

免责声明:文章转载自《游戏组件——总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Linux-设备树】.dtb文件的反汇编(1)java虚拟机概念和结构图下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java基础知识强化之IO流笔记32:转换流之OutputStreamWriter的使用

1. OutputStreamWriter的使用   OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流   OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流 把字节流转换为字符流。 字符流 =...

OpenGL(十二) 纹理映射(贴图)

OpenGL绘制纹理的步骤: 1. 开启纹理功能 使用glEnable(GL_TEXTURE_2D)开启2D纹理功能,使用glDisable(GL_TEXTURE_2D)关闭纹理,默认情况下纹理是关闭的。 2. 读取纹理图片到内存 读取的时候注意以下3点:  1) BMP文件数据前54位是文件头和信息头数据,偏移54位之后才是要读取的图像数...

RSA加密原理使用方式签名验证

  RSA加密原理使用方式签名验证 加密是网络传输中非常重要的一环,它保证了信息的安全性,让他人无法通过抓包来获取通讯的信息也无法通过伪造信息而实现对系统的入侵。其中最为常用的信息传递加密方式就是RSA加密。 RSA加密原理 RSA与传统加密方式不同的是,他是非对称加密,可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥...

Guava之缓存

一、使用场景   Guava Cache是本地缓存,当数据被重复查询多次,愿意耗费一些内存空间来减少查询的操作提高查询的速度,就可以使用Guava Cache。 二、使用方式 1.创建     LoadingCache是附带CacheLoader构建而成的缓存实现。创建自己的CacheLoader通常只需要简单地实现V load(K key) throw...

25.Android之图像的平移、旋转及缩放学习

在Android中,项目目录下的resdrawable用来放置该项目的图片资源。   Android中提供了Bitmap类来获取图像文件信息,进行图像的平移、旋转及缩放等操作,并可以指定格式保存图像文件。 1.图像绘制   在绘制图像之前,需要从项目目录下的resdrawable中获取所需的图片资源。我们可以通过资源索引来获得该图像对象Bitmap。具体...

TextRecognitionDataGenerator官方文档解读

Github地址: https://github.com/Belval/TextRecognitionDataGenerator 官方文档:https://textrecognitiondatagenerator.readthedocs.io/en/latest/index.html 官方文档解读 TextRecognitionDataGenerator’...