仿《雷霆战机》飞行射击手游开发--游戏对象

需求分析

既然我们做的是打飞机游戏,那需要有哪些游戏对象呢?观察一下下面这个游戏中的图片。首先,主角当然是飞机,有玩家飞机、两侧的僚机、敌机。飞机上装有各式各样的武器:普通子弹、导弹、激光等。如果只是一成不变的飞机打飞机,子弹没有变化,飞机也没有变化,那也太没意思了。所以我们还增加了道具,当敌机被击落时,会有一定的几率爆出宝石和其他各种奖励道具,比如武器升级、战机暴走、修复护甲、超级必杀、量子护盾。

我们来总结一下:

  • 飞机有哪些基本功能?    飞行、射击、爆炸;
  • 飞机有哪些基本属性呢? 生命、攻击、碰撞体、外观;
  • 飞机有哪些种类呢?    
    • 玩家飞机:具有特殊的控制方式、具体左飞、右飞、暴走变形等特殊的外观;
    • 僚机:玩家飞机的附属,生命:无敌,与玩家飞机共存亡;
    • 必杀僚机:无敌,飞行动作固定:从下方飞出来,射击n秒,往下飞走;
    • 敌机:从屏幕的某处自动飞出,不射击或者自动射击;
    • 高级敌机:从屏幕的某处自动飞出,飞到固定位置后,变形,然后射击;
    • boss:初始动作与高级敌机一样,不过boss支持多次变形,当血量少于某几个固定的值后,会触发boss的变形,每变形一次,攻击力增强。当boss击落后,会产生巨大的爆炸。
  • 武器有哪些基本功能?    射击、爆炸;
  • 武器有哪些基本属性呢? 攻击、碰撞体、外观;
  • 武器有哪些种类呢?    
    • 散弹:各类平行、开花子弹;
    • 自定义子弹:以后详述;
    • 跟踪导弹:始终会跟踪最近的敌机飞行,直至击落敌机;
    • 激光:矩形形状,伤害值按接触的时间计算;
  • 道具有哪些基本功能?    飞行;
  • 道具有哪些基本属性?    道具类型、不同的道具对飞机产生不同的作用;
  • 道具有哪些种类呢?
    • 宝石:相当于钱,可以用来解锁、购买其他装备
    • 武器升级:使玩家飞机的武器提高一个等级;
    • 战机暴走:使玩家飞机的武器提高到最高等级;
    • 修复护甲:恢复玩家飞机一定的生命值;
    • 超级必杀:从屏幕底部飞出一个巨大的僚机,发出超级激光,秒杀屏幕中的所有敌机(如下图);
    • 量子护盾:给玩家飞机增加一个护盾,该护盾能抵挡一次子弹的攻击,同时,护盾被击中时能释放出特殊的能量,能将屏幕中所有的子弹都转化为宝石;

“超级必杀”的清屏效果是不是感觉很爽!!

右下角金黄色飞机的外围是不是有一圈半透明的蓝色圆环?这就是量子护盾。

类设计

好了,需求分析的差不多了,我们现在来抽象一下这些游戏对象,如下图:

  • 首先,我们对所有的游戏对象进行分析,总结出GameObject这个派生自Sprite的类,其中包含了几个常用的方法:pause()/resume()/getBody()/setBody(),

    • pause()/resume():使游戏对象暂停、继续运动。这两个函数与Node中的pause()/resume()不同,这两个函数在使游戏对象本身暂停/恢复的同时,会使所有的子节点都调用一遍pause()和resume();
    • getBody()/setBody():为简单起见,我们没有使用物理引擎,而是我们定义碰撞体。每一个游戏对象都有一个碰撞体,当不同游戏对象的碰撞体发生碰撞时,会产生不同的效果,例如爆炸、产生奖励等等。这里的body是一个简单矩形,我们自己定义矩形的大小和相对于Sprite的位置。
  • 接着,飞机(Aircraft)、武器(BulletGroup/Bullet)、道具(Reward)都继承自GameObject。

这里需要重点关注一下BulletGroup和Bullet。我们可以把BulletGroup理解成包含弹匣的一把枪,把Bullet理解成单颗子弹。枪(BulletGroup)内包含了n发子弹(Bullet)。枪(BulletGroup)的不同,决定了子弹(Bullet)的外观、子弹的初始位置和飞行轨迹不同、子弹发射的频率和同时射出的数量不同。 所以,我们在BulletGroup中放了vector<Bullet>这个成员变量,这是一个简化的“子弹池”,当需要发射子弹时,从池中获取子弹,当子弹爆炸或者飞出屏幕时,子弹需要回收,放回池中。

下一篇,我们将结合代码讲述各种游戏对象。

时间: 2024-08-07 01:19:18

仿《雷霆战机》飞行射击手游开发--游戏对象的相关文章

仿《雷霆战机》飞行射击手游开发--游戏简介

游戏介绍 本游戏是一款使用cocos2d-x开发的纵版飞行射击单机游戏,开发语言是C++.玩家可以控制一架飞机与敌机进行对战,飞机可以发射子弹.导弹甚至激光,除此之外,玩家还能对自己的飞机进行强化改造,提升基础属性.当玩家完成指定的任务后,还能获取各种类型的道具奖励.游戏操作简单,上手容易,画面逼真炫酷,并有多种道具可供使用. 本游戏支持三种游戏模式:闯关模式.无尽模式.急速模式. 闯关模式 这是一种最常见的玩法,即游戏给玩家多个关卡,每个关卡面对的敌人不同,任务也不同,随着任务的完成,剧情也会

仿《雷霆战机》飞行射击手游开发--游戏的入口

游戏的入口AppDelegate 游戏启动后,首先实例化的是AppDelegate这个类,这这个类里,我们需要修改两个函数:applicationDidFinishLaunching和applicationDidEnterBackground. 首先介绍applicationDidFinishLaunching(),游戏启动后,首先进入的就是这个方法,这里,我们可以设置游戏的分辨率.帧率.第三方SDK的初始化,以及第一次要出现的场景. 1 bool AppDelegate::applicatio

仿《雷霆战机》飞行射击手游开发--项目总览

目录结构 ├─Classes        C++源代码.核心的核心的核心. ├─cocosstudio    Cocos Studio工程文件,包括了游戏中的所有场景界面 ├─proj.android   Android项目文件 │  ├─jni          Android的编译mk文件以及第三方SDK的so │  ├─libs         存放第三方SDK的jar │  ├─res          Android资源文件,包括icon │  └─src          java

仿《雷霆战机》飞行射击手游开发--GameObject

转载请注明:http://www.cnblogs.com/thorqq/p/5646509.html 在上一篇中,我们介绍了各种游戏对象的功能及类的集成关系,现在我们来看看GameObject的源代码 碰撞体 GameObject.h 1 class GameObject : public Sprite 2 { 3 public: 4 GameObject(); 5 6 virtual void setBodySize(const Size& s); 7 virtual void setBody

OGEngine —— 基于JAVA的手游开发开源引擎

OGEngine是国际著名开源引擎AndEngine的一个分支,遵循LGPL开源协议使用OpenGL ES进行图形绘制.同时集成了Box2D物理引擎,因此可以实现复杂的物理效果. OGEngine主要使用Java语言开发,但在大运算量的耗时功能时,OGEngine使用了C/C++本地代码进行开发.比如物理引擎及音频处理.作为用户,你只需要关注Java端就可以了,它已经把所有的本地代码封装好了.相比于其他android游戏引擎,OGEngine的效率优势十分明显. AndEngine在国际上已成为

Cocos2d-x 3.X手游开发实例详解

Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰然网创始人杨雍力荐) 于浩洋 著   ISBN 978-7-121-23998-4 2014年9月出版 定价:59.00元 356页 16开 编辑推荐 以Cocos2d-x V3.0为框架全面讲解手游开发的知识和方法 以热门游戏2048.卡牌为例,完整再现手游的开发过程 Cocos2d-x作者之一林

手游开发攻防——二、基础篇

<手游开发攻防--二.基础篇>已经更新完.主要是通过一个官方的DEMO,来分析Unity3D开发中的一些知识点和应用.注意的事项.大家可以去看看.有什么的可以提出来交流. http://blog.csdn.net/kakashi8841/article/details/39451739

写给VR手游开发小白的教程:(四)补充篇,详细介绍Unity中相机的投影矩阵

这篇作为上一篇的补充介绍,主要讲Unity里面的投影矩阵的问题: 上篇的链接写给VR手游开发小白的教程:(三)UnityVR插件CardboardSDKForUnity解析(二) 关于Unity中的Camera,圣典里面对每一项属性都做了简要的介绍,没看过的小伙伴传送门在下面 http://www.ceeger.com/Components/class-Camera.html 一.裁剪面 先从这个专业的词汇开始,以下是圣典对裁剪面的介绍: The Near and Far Clip Plane

工具分享:GameplayKit苹果手游开发工具简析

6月9日WWDC2015大会上,苹果宣布iOS 9将推出两个非常重要的手游开发工具GameplayKi和ReplayKit,这两个工具对于iOS手游开发者及欧美游戏视频相关领域可能会产生比较大的影响.GameplayKit开发工具极有可能成为今后iOS手游开发的主流工具,小爱在这里向大家简单介绍下这款工具,有兴趣的iOS开发者可以尽早get新技能. GameplayKit是什么? GameplayKit是一款帮助新手开发者们在OS X和iOS平台创作游戏的基础工具和技术框架,它能提供游戏资源.模