摘要:
4.1本章概览 本章主要讨论Game类的基本原理以及游戏组件的相关概念。下一章您将开发自己的图像引擎,但在这之前您还需要几个新的辅助类。其中BaseGame类用来实现更多的特性,而且它会使用到目前所有其他辅助类。该类继承自Game类(Microsoft.Xna.Framework.Game),以便使用所有现有的XNA特性。同样地,主测试类TestGame继承自BaseGame,用来执行... 阅读全文
posted @ 2010-05-11 21:52
AlexCheng
阅读(147)
评论(0)
推荐(0)
摘要:
3.10本章摘要 本章您学习到了大量的类,它们在以后的项目中会非常有用。单元测试也是一个很重要的知识点,以写单元测试开始游戏的开发会是个不错的选择。本章最后介绍了Breakout游戏。本章内容很多,不过幸好您可以跳过一些Breakout游戏的知识点,因为很多部分都可以重用上一章的Pong游戏。 下一章的重点将放在游戏编程上,介绍怎样使用组件来构建游戏。本章中您见识了使用辅助... 阅读全文
posted @ 2010-05-11 21:50
AlexCheng
阅读(165)
评论(0)
推荐(0)
摘要:
3.9挑战:改进Breakout游戏 您可以尝试给玩家设置更多的生命次数,还可以像上一章那样添加一个游戏菜单。您也可以把Breakout游戏作为一个测试平台,来检验目前已经实现的辅助类。例如,玩家每次升级或者打碎了一个砖块的时候,可以写一条日志消息记录下来。 下一章将介绍一个Input类,它可以更加容易地捕获控制器的所有输入。就像上一章一样,可以做一个非常好玩的改进:给Ga... 阅读全文
posted @ 2010-05-11 21:48
AlexCheng
阅读(195)
评论(0)
推荐(0)
摘要:
3.7其他辅助类 Helpers命名空间中还包括其他一些辅助类,大多数都像RandomHelper类一样简单,没有必要把它们都讲一遍,所以请你们自己看一下本章没有讲到的那些辅助类,如果想进一步了解它们可以使用其中的单元测试进行一些测试。 在介绍Breakout游戏之前,先简要地看看这样几个辅助类,它们在下面几章中会被反复地使用:SpriteHelper、EnumHel... 阅读全文
posted @ 2010-05-11 21:43
AlexCheng
阅读(213)
评论(0)
推荐(0)
摘要:
3.8 Breakout游戏 前面介绍了很多辅助类,现在是时候使用它们了。这里我将跳过游戏的构思阶段,Breakout游戏只有单人模式,对手则是砖块,所以可以把它说成是Pong游戏缩略版本。最初Breakout游戏是由Nolan Bushnell和Steve Wozniak发明的,并在1976年由Atari公司发行。在这个早期版本中,它仅仅是个黑白游戏,就像Pong游戏一样。但为了让它... 阅读全文
posted @ 2010-05-11 21:43
AlexCheng
阅读(225)
评论(0)
推荐(0)
摘要:
3.6 StringHelper类 StringHelper类是最大的辅助类之一,估计它是我写的第一个辅助类,因为针对字符串的处理操作非常多,很容易就可以想到一些方法来改善性能,更容易地处理字符串列表,输出字符串数据等等。 看一下StringHelper类的结构图(如图3-9所示),您会发现它的方法非常多,重载的方法支持很多不同类型的参数。它还包含大量的单元测试,... 阅读全文
posted @ 2010-05-11 21:41
AlexCheng
阅读(227)
评论(0)
推荐(0)
摘要:
3.5 RandomHelper类 看一下辅助类中的RandomHelper类,在单一项目中它用得不是很多,但几乎任何一个游戏都会需要产生一些随机数让游戏内容看上去没有太多的周期性,并让游戏富于变化。 在Breakout游戏中,您就需要一些随机数,这里的砖块(block)就是随机生成的。第一级的随机概率是10%,第二级是20%,以此类推,这样游戏级别不断提升,游戏也就变得更... 阅读全文
posted @ 2010-05-11 21:38
AlexCheng
阅读(200)
评论(0)
推荐(0)
摘要:
3.4 XNA 中的单元测试 在进一步学习辅助类之前,本节先来简单地讨论一下单元测试。上一章您已经学习了静态单元测试(static unit test),静态单元测试非常适用于快速检测输出结果、测试物理特性和控制器以及快速构建游戏。但是辅助类和组件不需要用户输入,这就要求您自己来处理它们。这是没有意义的,因为单元测试主要是为了改进应用程序的可维护性,并确保尽可能少地出现错误。例如,... 阅读全文
posted @ 2010-05-11 21:36
AlexCheng
阅读(253)
评论(0)
推荐(0)
摘要:
3.3记录错误信息 调试代码非常复杂,特别是渲染循环出错了,但您却得不到任何异常。只设置几个调试断点并不够,尤其是当游戏运行一段时间之后出现了错误,调试并不是合适的选择。您或许想知道每一帧都发生了什么,但又不想一步步地跟踪它。对于这类问题,您可以给控制台输出一些信息,不过这只能在Visual Studio中使用,而且当下次启动项目时这些信息就没了。 在我做过的比较大型的项目... 阅读全文
posted @ 2010-05-11 21:30
AlexCheng
阅读(185)
评论(0)
推荐(0)
摘要:
3.2管理内容管道 正如您在第一章中学到的,内容管道主要用来导入游戏资源,比如texture、模型、shader和声音文件。和Visual Studio(或XNA Studio)使用的其他文件不同的是,内容文件不仅仅是被添加到项目中就没事了,它们会被处理并编译成二进制内容文件,然后在游戏中加载它们(如图3-1所示)。 图3-1 过去,游戏编程人员必须得自己写内容导入器加载... 阅读全文
posted @ 2010-05-11 21:30
AlexCheng
阅读(247)
评论(0)
推荐(0)
浙公网安备 33010602011771号