总结
我希望您能喜欢本章中的内容,并掌握创建游戏的整个过程。Pong可能并不是最好玩的游戏,但它涵盖了对于任何一个游戏项目来说都可能包含的从头至尾的所有东西。对于大一些的游戏项目,只用一章的篇幅是讲不完的,但在这里您至少已经学习了一些概念、单元测试以及一些敏捷方法学的基本术语。下一章要学习辅助类的设计,然后再深入研究Game类和游戏组件,这之后,您就可以准备写一个包含很多非常酷的特效的3D引擎,它将在本书最后一部分使用XNA写一个大的、好玩的游戏时用到。同时,您还将学习一些其他的小的、但好玩的游戏项目。
本章最重要的一点是敏捷开发给游戏编程带来的好处,虽然您可以不断地做一些修改,并且很轻松的以自顶而下的方式解决问题,但是做一个游戏构思,即使只有一页纸那么多,仍然很重要。单元测试也很有帮助,不过在下一章中您将看到单元测试还可以自动化地完成,并且它们对于助手类来说也很有用,这些助手类遍及本书中后面的项目。
看一看在本章中您学到的内容:
-
写下您的想法,并有一个小的游戏构思非常重要
-
正好一页纸的构思相当有用
-
为了解决问题你使用了自顶而下的方式,并且站在最高层面来使用单元测试,而不用去考虑细节实现。通过这种方式您能够快速地提取出游戏概念的构想,并且在单元测试中写下它们,这时候就会很容易地发现您必须具体实现什么样的方法。
-
创建一些纹理素材,把它们加载到项目中,然后把它们作为Sprite渲染出来。
-
一次性渲染大量Sprite可以带来较高的效能。
-
使用一个精巧的计算公式可以帮助您创建分辨率独立(resolution-independent)的游戏。这样,游戏就可以在Xbox 360上很好地运行,并且是在任何可能的分辨率下。
-
使用两个Gamepad控制器处理游戏输入,以及使用键盘处理多玩家输入。
-
借助BoundingBox结构体进行2D碰撞检测。
-
如果始终把z值设为0,您可以使用Vector3来代替Vector2 正常工作。
-
使用单元测试来进行碰撞检测非常重要,并可以显著减少您必须进行的测试工作量。即使您当前正在处理游戏中完全不同于碰撞的部分,仍然可以切换到单元测试中,再次检测碰撞。