《XNA高级编程:Xbox 360和Windows》47

4.7 本章摘要


     现在,您的小规模的游戏引擎拥有了三个新的命名空间,并且拥有很多将来项目中可以使用的辅助类,而其中TextureFont类对接下来的几章将特别有用。它不仅可以用于显示类似记分板这样的游戏数据,还可以用于单元测试。在单元测试中,它可以显示一些帮助性的文字告诉玩家所有可用的热键,尤其当您遇到问题时,还可以显示测试及调试信息。例如,一个camera类的单元测试可以输出camera的位置数据以及旋转数据,这样就可以知道在测试进行的时候到底都发生了什么。

     我希望您在阅读这四章内容的时候能感受到一些乐趣,并喜欢您所开发的几款示例游戏。Arcade游戏很好玩,但仅仅编写简单的2D游戏无法体现科技水平的进步,而且您也不会太在意去编写一个克隆版的Pong游戏。然而,基于学习的目的,为了介绍所有的辅助类,也为了学习更多有关敏捷方法学以及单元测试的知识,使用这些实际的项目要比仅仅谈论一些理论以及那些无趣的辅助类要有用得多。

     本书接下来一部分将带您进入3D世界,并教您如何写自己的3D图像引擎。您没必要成为一个数学教授来理解如何在屏幕上输出模型,借助于XNA及其内容管道,您不用知道底层的有关数学以及3D几何学方面的东西,就可以在屏幕上渲染3D数据。如果您对3D图形编程很感兴趣,就应该知道一些矢量、矩阵方面的知识,以及如何正确地操作它们。要了解3D游戏编程世界里的所有知识不仅要求您很聪明,还要求您要通过不断的阅读来了解这个领域中的新知识。

     如果您是一个游戏开发者,您可能不太关心底层的图像引擎代码,而把精力集中在游戏本身。然而,大多数人都想制作非常酷的游戏,这通常意味着他们还必须要创建自己的游戏引擎,因为没有完美的3D引擎可用,而且游戏中的每个特性都可能要求使用不同的方式来渲染3D数据。在您的游戏引擎足够处理更加复杂的游戏之后,本书的最后一部分将讨论更多有关游戏编程方面的知识。

最后来看一下前几章您所学到的内容:
  • 把您的想法写下来这很重要,最好限制在一页纸的篇幅
  • 使用自顶向下的方式以及单元测试来解决问题
  • 您还学了处理用户输入、播放声音和绘制sprites。所有这些在XNA中都很容易做到,但为了避免一遍又一遍地重复编写相同的代码,您可以把它们实现为辅助类
  • 介绍了很多辅助类来帮助您渲染素材字体、处理字符串、遍历枚举、操作颜色、写日志等等
  • 在任何一个游戏中写一些碰撞检测都是很有必要的。在前两个游戏中您使用了BoundingBox结构来检测2D碰撞,本章中您则借助MoveBlock方法来处理Tetris网格中的所有碰撞
  • 单元测试很重要,尤其是使用静态单元测试帮了您很大的忙,而且在本章中使得创建游戏的过程比不使用单元测试更加有趣也更有效率
原文地址:https://www.cnblogs.com/AlexCheng/p/2120320.html