摘要: 总结 本章您学习到了大量的类,它们在以后的项目中会非常有用。单元测试也是一个重要的知识点,并且我希望说服你先写单元测试作为开始游戏开发的方式。本章最后关注了Breakout游戏。本章内容很多,幸好您可以跳过Breakout游戏的一些知识点,因为游戏的很多部分都可以重用上一章的Pong游戏。 下一章的中心将稍微放在游戏编程上,以及如何使用组件来构建游戏。本章中您看到了助手类的用处,现在你准备把这种思... 阅读全文
posted @ 2010-07-28 11:00 AlexCheng 阅读(232) 评论(0) 推荐(0)
摘要: 挑战:改进Breakout游戏 您可以尝试给玩家设置更多的生命次数,也可以像在上一章那样添加一个菜单以改进游戏。您也可以把Breakout游戏作为一个测试平台,来检验到目前为止实现了的辅助类。例如,玩家每次完成level 关卡或者打碎了一个砖块的时候,可以写下一条日志消息。 下一章将介绍Input类,它可以使捕获控制器的所有输入更加容易。就像上一章实现Gamepad的Rumble支持那样,游戏... 阅读全文
posted @ 2010-07-28 10:59 AlexCheng 阅读(161) 评论(0) 推荐(0)
摘要: Breakout游戏 好极了,本章谈论了很多辅助类,最终是时候把它们派上些用场了。这里我将跳过游戏的构思阶段,Breakout游戏大体上说只是一个Pong游戏缩略版本,它只有单人模式,面对的是一墙砖块。最初Breakout游戏是由Nolan Bushnell和Steve Wozniak发明的,并在1976年由Atari公司发行。在这个早期版本中,它就像Pong游戏一样仅仅是个黑白游戏,但为了让它... 阅读全文
posted @ 2010-07-28 10:58 AlexCheng 阅读(672) 评论(0) 推荐(0)
摘要: 其他辅助类 Helpers命名空间中包括了更多的辅助类;大多数辅助类就像RandomHelper类一样简单。把它们遍历一遍非常沉闷,所以请你们自己审阅本章没有提及的那些辅助类,如果想进一步了解它们可以使用其中内含的单元测试进行检测。 在本章结尾进入Breakout游戏之前,浏览几个余下的辅助类,它们在下面几章中会被频繁地使用:SpriteHelper、EnumHelper和ColorHelper。... 阅读全文
posted @ 2010-07-28 10:54 AlexCheng 阅读(414) 评论(0) 推荐(0)
摘要: StringHelper类 StringHelper类是最大的辅助类之一,估计它是我曾写的第一个辅助类,因为处理字符串会卷入如此之多的问题,很容易就可以想到许多方式来改善性能,更容易地处理字符串列表,输出字符串数据等等。 如果看一看StringHelper类(如图3-9所示),您会立刻发现许多方法,并且所有重载的方法支持很多不同的参数类型。它还包含相当多的单元测试;几分钟前,您就看见过一个来自于S... 阅读全文
posted @ 2010-07-28 10:49 AlexCheng 阅读(626) 评论(0) 推荐(0)
摘要: 随机函数(RandomHelper)辅助类 看一下助手类之一的RandomHelper类。在单一项目中它不被经常使用,但几乎任何一个游戏都使用一些随机数生成,使得游戏内容看上去没有太多的周期性,并且给游戏带来更多变化。 在Breakout游戏中,您将编写一些随机数,这里的砖块(block)就是随机生成的。level 1 的随机概率是10%,level 2使用的随机率是20%,以此类推。这样随着... 阅读全文
posted @ 2010-07-28 10:47 AlexCheng 阅读(349) 评论(0) 推荐(0)
摘要: XNA 中的单元测试 在本书即将带来的工程项目进一步深入助手类的细节之前,本节简单讨论一下单元测试。在上一章您已经学习了静态单元测试(static unit test)。静态单元测试非常适用于快速检测可视的结果、测试物理特性和控制器,以及快速构建游戏。但是助手类和组件不需要用户输入,而需要你考虑它们的接口。这是没有意义的,因为单元测试主要是为了改善你的应用程序的可维护性,并确保一切运行尽可能无错。... 阅读全文
posted @ 2010-07-28 10:45 AlexCheng 阅读(240) 评论(0) 推荐(0)
摘要: 记录错误信息 Debug游戏代码可能是非常复杂的,特别是如果您没有得到任何异常,但某些渲染循环却出错。只设置几个断点并不够,尤其是如果游戏在运行一段时间之后遇到错误,Debug并不是正确的选择。您想知道每一帧都运行了什么,但又不想逐步贯穿500帧去发现它。对于这类问题,您可以仅仅抛出一些文本到控制台,不过这只能在Visual Studio中使用,而且当你下次启动项目时将会丢失所有的控制台内容。 在... 阅读全文
posted @ 2010-07-28 10:41 AlexCheng 阅读(242) 评论(0) 推荐(0)
摘要: 掌握内容管道 就像你在第一章学到的,内容管道通常用来导入游戏资源,诸如纹理、shaders、阴影和声音文件。不像任何其他非Visual Studio(或 XNA Studio)支持的文件,你只要把添加它们到工程项目,内容文件会被处理,并且然后会被编译为二进制内容文件,这些文件能被你的游戏加载(见图3-1)。 图 3-1 在过去游戏编程不得不编写自己的导入器来加载游戏内容数据或者使用一种可利... 阅读全文
posted @ 2010-07-28 10:37 AlexCheng 阅读(233) 评论(0) 推荐(0)
摘要: 概览 在Helper命名空间,我通常放许多有用的小工具和类,这些类随着时间的过去变得相当有用。对于一个单一的工程项目,它可能不是最重要或最有价值的代码,但是因为它能被一遍又一遍的使用,无论引擎的其他部分是否改变,助手类将是你的引擎和工程项目里最稳固的部分。大多数助手类不处理太多的游戏程序,并且对其他工程项目甚至网站都有用。 你正好看过前面的章节,你不借助任何助手类就能写一个完整的游戏,甚至根本不用... 阅读全文
posted @ 2010-07-28 10:31 AlexCheng 阅读(155) 评论(0) 推荐(0)