Cocos2d-x教你写简易版雷电(2.2.3版本)

Cocos2d-x教你写简易版雷电(2.2.3版本)

操作方法

  • 01

    头回写教程这玩意,真不知道要写些什么,所以主要就是共享下我的代码,和一些重要功能的讲解吧。其实这个demo(为何叫demo呢,因为我真不敢称这个为游戏呀)是我初学cocos2d-x两周的时候写的,所以可能写的不是很好(好吧,其实现在写的东西也不好),当初主要还是靠着度娘和TestCpp学的,所以在此还是要强调一下TestCpp的重要性,要好好把它看一遍哟,以后你想实现什么功能就可以去翻看了。好了,言归正传,还是介绍下我写的这个demo了,在此先华丽丽的献上几张截图来养养眼了。

  • 02

    接下来讲讲这个demo的功能了,三个关卡,每个关卡一种不同的boss和三种相同的小兵,小兵不同关卡子弹数目不一样,移动路径是定死的(为啥要定死呢,因为当初年少天真的我想要像雷电那样控制每波敌人的种类数量和路径,结果你懂了,我失败了,写不出来呀有木有,就成了这样了)。五种道具,导弹(全屏秒杀),宝石(红色加子弹个数,蓝色加保护盾,紫色回血,宝石每隔一段时间变个颜色 ),金币(增加分数,每一百分加1生命)。好吧,我知道你们想知道的是怎么写,那我就不罗嗦了,lamp兄弟连首先来看看所有的头文件。

  • 03

    LoadLogo 没啥用,就是运行游戏的时候最先显示一张图而已,很多游戏就是显示一堆logoCCRadioMenu就是个多选一按钮控件,网上找到,选择关卡的时候用GameEvent用来管理不同场景切换播放什么样的效果,定义了当前游戏关卡这个全局变量GameLevel就是选择关卡的界面了GameMenu游戏菜单,开始、退出游戏GameMap游戏背景,根据不同关卡显示不同图片GameMessage游戏信息,就是顶上的那个显示HP、分数、生命什么的GameOver游戏失败界面lamp兄弟连 Effect 创建金币和爆炸动画的缓存,以后创建动画就不用重新创建了MoveTrackArray移动轨迹的类,因为我的轨迹是定死的UnitSprite单元类,道具、子弹和飞机共有的属性BulletSprite子弹类,继承单元类,子弹的逻辑ItemSprite道具类,继承单元类,道具的逻辑RoleSprite角色类,继承单元类,主要是玩家和敌人共有的东西(飞行动画 受击 爆炸之类的)PlayerSprite玩家类,继承角色类,玩家的逻辑EnemySprite敌人类,继承角色类,敌人的逻辑BossSprite敌人BOSS类,继承敌人类,敌人BOSS的逻辑GameManger游戏管理类,创建所有游戏所需的对象BulletManager子弹管理类,创建和删除所有子弹EnemyManager敌人管理类,创建和删除所有敌人ItemManager 道具管理类,创建和删除所有道具首先说说菜单的效果,陨石掉落不用说就是CCParticleSun的粒子效果,开个定时器schedule,让它一直从左上角随机一个地方执行移动。星星闪烁就是CCFadeOut渐变透明的动作及其reverse(动画的反转),通过CCSequence序列动作和CCRepeatForever永久播放。lamp兄弟连 接下来说说选择关卡界面,中间那个特性也是粒子效果,CCParticleSystemQuad,在TestCpp里看着还不错就拿过来的了。关卡的选择效果也是CCParticleSun,设置了下StartSize,就是这个样子了。你可能会问我为啥不直接设置倍数呢,你可以试下,然后你就会惊奇的发现它的消失点就会偏移掉了,至于为什么,我也不知道。然后要说啥呢,说说敌人子弹的圆形扩散移动轨迹吧,其实很简单,就是根据圆形的极坐标方程(x = rcos(θ),y = rsin(θ))根据半径和两个子弹的间隔角度,不断增大半径就成了。假设三个子弹,子弹间隔20度,三个子弹θ分别为250度、270度、290度,因为270度是正下方嘛。lamp兄弟连 敌人的移动轨迹,就是CCPointArray存了移动的点,然后通过CCCardinalSplineBy来进行移动,详细使用可以看看TestCpp。碰撞检查,都是在道具类呀子弹类呀敌人类呀里面开启个update,通过boundingBox来检测与其他物体的碰撞。这里就涉及到不同对象之间的数据的交互,我是在GameManager里将所要进行数据交互的类都设为静态的,然后通过函数获取该对象地址。切换下一关,你会惊奇的发现我是在GameManager里面把一堆对象删了重新创建的,因为我当初用replaceScene切换自身的场景,会导致数据也跟着清掉了,所以就这么干了。那时的我还年少无知,不知道创建个单例的数据管理类来保存数据呀。道具的随机移动,就是开个定时器,设置一个移动点进行移动,然后一直改变移动点。也许你发现了,我的对象都是在其管理类的update里进行删除,你可能在思考我这么写有什么用途,其实,我那时压根就不知道removeFromParent啊,也不知道CCRemoveSelf啊。还有为啥我的血条要用setTextureRect呢,因为我不认识CCProgressTimer啊!使用导弹的震屏效果,其实就是用CCJumpBy而已啦,看着效果还不错呢。还有,说说对象的属性设置,其实就是传个type变量,然后通过switch case判断type的值来设置不同的属性值。lamp兄弟连 如果你想问为何这些类名字起名叫xxxSprite却是继承CCLayer而不是继承CCSprite呢,原因就是我那时压根不会给CCSprite注册触摸事件啊,所以直接用CCLayer来开启触摸了。

(0)

相关推荐

  • 《植物大战僵尸》简易版2炮阵型分析

    这是简易版的2炮阵型 步骤/方法 01 简易版的2炮是比较稳定的阵型 4朵双子基本能维持阵型的阳光需要,虽然遇到红眼配小丑的时候阳光会略降,但大部分情况下还是略升的,而且碰到阳光关还可以大幅回升阳光. ...

  • win7旗舰版系统怎么查看DirectX版本,需要安装9.0C吗

    Win7旗舰版系统怎么查看DirectX版本?相信很多朋友在下载安装游戏的时候官方网站都会标注运行所需要的DirectX的版本,可能大家还不知道Directx是什么?它是由微软公司开发的用途广泛的AP ...

  • 怎么下载和安装手机版UC浏览器的历史版本

    UC浏览器是我们常用的一款浏览器,给我们提供了很多资讯,深受用户的喜欢,有的朋友想知道怎么下载和安装手机版UC浏览器的历史版本,小编为大家介绍方法.具体如下:1. 首先,请大家在自己的手机中找到浏览器 ...

  • 怎么检查手机版微信是否是最新版本

    手机版微信软件被很多人使用,用来与好友联系,看看朋友圈等.随着社会经济的发展,微信也在不断更新着,那么如何检查自己的微信是否是最新版本呢?小编就来为大家介绍一下吧.具体如下:1. 第一步,点击并打开微 ...

  • 怎么查询手机版微信是否是最新版本

    手机版微信软件被很多人使用,用来聊天,逛朋友圈等, 有的用户在使用该软件时,想要知道自己的微信版本是否是最新版本,但是却不知道如何查询,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,点击并打开 ...

  • 怎么检查手机版抖音是否有版本可更新

    手机版抖音软件被很多人使用,用来看视频,发布视频等,有的用户在使用该软件时,想要检查是否有版本可更新,但是却不知道如何检查,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,点击并打开抖音软件,接 ...

  • 如何下载手机版探探到旧版本

    手机版探探软件被很多人使用,用来社交等,有的用户在使用该软件时,发现并不适用新版版,因此想要下载回旧版本,但是却不知道如何操作,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,解锁手机,接着点击 ...

  • 电脑版钉钉怎么查看版本并检查更新

    钉钉是现在十分常用的一款办公软件,有些用户想知道电脑版钉钉怎么查看版本并检查更新,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步根据下图箭头所指,双击[钉钉]图标打开软件.2. ...

  • 如何在电脑版Word中查询软件版本

    电脑版Word软件被很多人使用, 用来编辑文档等,有的用户在使用该软件时,想要查询该软件的版本,但是却不知道如何查询,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,双击或者右击打开word文件 ...