§11.0概览
本章我将引导你制作XNA Shooter游戏,一个小小的射击游戏,它真的很好玩,借助于很酷的特效、漂亮的3D模型、以建筑物和植物作为背景的游戏场景、实时阴影映射、很棒的音乐和音效,这个游戏的外观和感觉比通常的街机游戏更好。当我开始制作这个游戏时,我也没有想到能做出这么棒的游戏(你可能从游戏名就能猜出这点,这个名称一点也不伟大)。但当我加入阴影映射(这在最后一章的赛车游戏中也被用到)后,背景和3D建筑物看起来非常漂亮,类似于上一章的漂亮的UI界面和一些很酷的post-screen shaders对此功劳也不小。
本章让你跟随制作XNA Shooter的每一步。游戏的基本编码花了两至三天,只有一些较高级的类如EffectManager和阴影映射需要一些额外的调整。阴影映射不光难以实现,而且要让你花几天甚至几周的时间反复调试才能使它看起来好一些,并修正一些问题(通常总是有问题)。XNA Shooter完全基于第5章的Xna GraphicEngine和第8章的Rocket Commander。只有这样才能在这么短的时间内做出一个这么好的游戏。创建三维模型无需花很多时间,因为大部分来自老项目已经有了。由于simple camera是固定的,它始终看着地面,所以像渲染天空盒和镜头眩光可以不被考虑。该相机还简化了阴影映射,因为你总是看到相同大小的3D区域。
游戏逻辑在四个类中被处理:
- Player类,在Rocket Commander已经使用过。这里更简单,因为你只需要保存当前时间,得分,生命值和武器类型。
- Unit类处理所有的敌人单位,它更新敌人的位置和AI,并把他们渲染在屏幕上。
- Projectile类处理所有你和敌人发射出的弹药。这包括等离子球,你的火箭,火球或敌人的火箭弹。即时武器如MG或Gatling-gun没有弹药,它们立即命中目标并在屏幕上直接显示效果。
- 最后,Item类用来处理在击落运输舰或火箭护卫舰后掉落道具,并允许玩家在飞过它们时捡起道具。道具包括生命值,电磁脉冲炸弹,或者只是四种武器中的一个。
游戏逻辑比Rocket Commander复杂一点,但当你研究了所有这些类后,你会发现Misson类其实很简单,当你把所有的东西都整合在一起时,游戏差不多也就完成了,只需再做些测试和修复错误,游戏就能运行得很好。
发布时间:2008/10/6 上午7:11:35 阅读次数:5256