今天在硬盘里翻出了先前在做飞行游戏时候的一些文档,共享一下吧。当时写的有点粗略。飞行游戏程序设计要点 1、 地图 1.1 层次问题 如果这个游戏完全是在一层上面进行,会让人索然无味。因此,有必要对游戏分层次。地面上有坦克和一些炮塔,云层中有时不时冲出来的敌机,而最上面的这一层就是游戏画面的主体,大量的敌机!因此,游戏要分为3层!地面 云(云层为可选) 主画面层 1.2 如何拼接 用一张整图不现实,这样会影响程序的执行效率,而且很占空间。只有通过图块的拼接。因此,要设计合理的图块(Tile),对地图索引的排列也需要重点的设计。还有地图工具的寻找和使用,脚本化地图的编辑,使地图编辑更方便,不仅是程序人员可使用,其他人员如策划和美术通过此工具编辑后导出拼接文件给程序人员。 1.3 装载地图 将地图索引写进文件,在程序装载的时候,通过输入输出流来读取地图内容。与地图工具的相结合使用,抽取独立的工具类和函数。 2、 子弹 在飞行射击游戏中,最重要的,给人印象最深刻的就是那满屏幕的,铺天盖地的子弹,因此,对子弹类的设计是游戏成功的关键。 2.1 玩家发射的子弹 默认的子弹为最低杀伤力,最基本的子弹形态 通过获得敌人掉落的子弹夹,可以改变子弹形态 2.2 普通敌人的子弹 大致分为: 迅速下落的子弹 以敌机自身为中心的向四周扩散的环状子弹群 设置可以发跟踪玩家的子弹 2.3 Boss的子弹 具体属性,分为3个生命阶段,在Boss的每一个生命阶段发射不同的子弹 Boss的子弹的特性:密集,发射频率快 2.4 对通用子弹模块的抽取 子弹有其共同特征,单独抽取出来,便于以后重复利用 3、 碰撞检测 3.1 如何检测碰撞在飞行射击游戏中,碰撞是最关键的技术,如果不能很好的解决,会影响玩游戏者的兴趣。因为飞行射击游戏说白了就是碰撞的游戏——躲避敌人的子弹或飞机,同时用自己的子弹去碰撞敌人。 采用矩形检测,首先设置检测矩形区域,通过循环判断飞机、子弹之间的距离值来判断。 3.2 对碰撞做出的反应 一旦确定两个物体发生了碰撞,就要对这种情况做出反应。最简单的反应就是将其中的一个对象(或者两个)从游戏中删除。这在这种类型的游戏中是很常见的。 A:敌机子弹与玩家控制的战舰发生碰撞 玩家战舰减血,直到没有生命。战舰发生剧烈的爆炸(播放动画,一组连续的图片),子弹消失 B:玩家子弹与敌人普通战舰发生碰撞 敌机爆炸。播放动画,子弹消失 C:玩家子弹与BOSS碰撞 Boss减血,直到生命终结。然后发生爆炸 3.3 玩家效果显示的控制 爆炸效果:爆炸图片与玩家飞机图片分开存放若隐若现效果:通过控制玩家的显示状态和时间综合控制