我们已经讨论了大量有关游戏的技术,包括图形、计时器和声音等。现在应该把目前所学的知识综合到一起,来制作一个真正的游戏。
在本章中,我们将全程演示如何制作一个名为GemDrops(宝石连连看)的示例游戏,这是一个功能完整的游戏(并且很好玩),它使用了我们前面所构建好的游戏引擎。
8.1 设计游戏
在创建游戏之前,首先要在一个“设计概要”文档中对游戏进行规划。它将解释游戏的内容、实现方式及其目标。还要辅以一些模型屏幕截图对游戏设计进行演示。
如果您是独自开发,那么在游戏的实现过程中 应该能够流畅地执行该计划;如果您在一个团队中,那么在决定改动设计时就必须更加遵守规则,确保每个人都能理解这些变动,并从自己的角度出发进行考虑。
当您独自进行开发时,概要设计看似多余,但它仍然是一个非常有用的文档:
● 它能帮您在投入大量时间编写程序代码之前发现可能存在的问题,从而减小很多由于返工而造成的浪费。
● 它能帮您记录要实现的功能列表,在开发游戏时,当需要实现一系列游戏功能时,它就可以发挥作用。
● 它能帮您激发灵感来设计新功能和触发新的想法,避免陷入纷繁复杂的实际情况
当中。
● 它能帮您更快更好地将游戏的理念传达给其他人。
接下来我们就对“GemDrops”游戏进行概要设计。
8.1.1 创建GemDrops的概要设计
GemDrops游戏中包含了多种颜色的宝石。宝石在玩家的控制下成对的从游戏区域的顶部往下降落。玩家可以左右移动宝石,也可以旋转宝石以调整排列顺序,还可以使宝石加速下落来使游戏更加流畅。
玩家控制中的宝石不能移动到与已有的宝石发生重叠的位置。当玩家试图将一对宝石移动到某个已经存在了宝石的位置上时,该移动将不被允许,且被控制的宝石保持在原位。同样,当宝石落在已有宝石的上面时是不允许旋转的。
玩家控制中的宝石如果落在某个已经存在的宝石上,该宝石就被认为是落地了,玩家将失去对这一对宝石的控制。
宝石不会漂浮在游戏区域的中间,只要有可能它们就会往下落。如果宝石在降落过程中是水平排列的,当其中一个宝石落在某个已经存在的宝石的上方,而与它配对的另一个宝石下方还有空间时,那么后者将会继续降落(这时玩家不能对它进行控制),直到其降落到某个已存在的宝石的上方或是到达游戏区域的底边。
当游戏区域中有5个及5个以上相同颜色的宝石连接在一起时(垂直连接或者水平连接,但斜线连接无效),那么这一组宝石就会从游戏区域中消去。这些宝石不必以直线的方式连接,只需要相互连接即可。这时玩家就会得分,分数的多少是根据连接在一起的宝石的数量决定的。每连接一个宝石就会得10分。因此,消去一组宝石至少会得50分。