§4.6总结

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

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

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

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

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

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

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

你学习了处理用户输入,播放声音,绘制精灵。在XNA中所有这些相当容易完成,不过为了避免一遍遍的重复相同的代码,你把它们放到辅助类中大量的辅助类被引入,以帮助你渲染字体纹理、处理字符串、遍历枚举、操作色彩,写下日志文件,以及更多。在每个游戏中都需要你编写某种碰撞检测。

在前两个游戏,你使用了BoundingBox 结构体来检查2D碰撞,本章你在Tetris grid中的MoveBlock方法里,亲自处理了所有碰撞。

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


发布时间:2008/6/27 上午9:31:55  阅读次数:5312

2006 - 2024,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号