概览

终于到本书的最后了,只剩最后一章了。你将了解赛车游戏所有的细节。本章你将学习所有的游戏屏幕、游戏逻辑、记分系统以及一切你您需要的东西。场景和赛道的大多数渲染技术已经在第12章讨论过了,但本章会增加一点阴影。因为上一章已讨论过物理学和汽车控制,现在应该可以插入此代码,并开始测试游戏本身。

本章的主要目的是让你熟悉赛车游戏和底层代码。在本章最后你应该知道一切以创建自己的改编赛车游戏。游戏改编可以很简单,只需改编图形和三维模型,也可以改变整个游戏的逻辑,使它不再是一个赛车游戏。例如Rocket Commander也是可以改编的,但游戏逻辑和渲染代码是固定的。你可以或多或少地改变模型,并新增一点游戏逻辑。尽管大多数Rocket Commander改编版本看起来完全不同(见图14-1),但游戏逻辑是相似的。Rocket Commander的游戏规则是保持前进并避免与其他物体(如小行星)碰撞,同时也收集物品,如生命值,水果,比萨饼等等。有些改编版本有更快的游戏速度,有些则慢得多,侧重于解决智力题,比如收集正确的水果(比萨指挥官和水果指挥官)。好在改编Rocket Commander并不难,因为改变原始版本相对容易。如果有一些不同的三维模型,则改变它们是容易的。改变游戏逻辑也不难,因为你只需关心Mission类和Player类,其余的类只是用于菜单和图形。

1
图 14-1

最新的改编版本(写这本书时)是峡谷指挥官,它表明无需太多努力也能大大地改变图形和游戏玩法。该版本是由一个加拿大的.NET初学者制作的,这是他的第一场游戏项目。我想说这令人印象深刻。

本章的赛车游戏更加复杂,并允许更大的游戏变化。使用不同的代码和三维模型,可以制作车一个完全不同的游戏。场景引擎可在战略或角色扮演游戏中找到,但即使是室外的射击和冒险游戏也可以大大受益于现有的场景渲染引擎。不过,制作一个完整的改编版本和改变整个游戏的逻辑要做很多工作,如果你的改编版本不需要,还可以删除负责生成道路的代码。

显然,保持同一类型而只改变三维模型,也许再调整一些游戏参数简单得多。这也是你将在本章最后要做的事,那时你可以自由地实现自己的游戏构思。Speedy Racer改编版本替换了赛车模型,并使道路更加宽阔使驾驶更加容易,但它大大提高了车速。这个改编版本将在本章最后详细讨论。