飞机大战游戏脚本基本流程及注意

飞机大战游戏脚本基本流程及注意

一、主函数
1.设置对象: 暂停键、游戏音效、敌人(enemyGroup),控制对象(hero(自己))、 子弹(bulletGroup)、得分显示
2.初始化:将分数归零并展示出来、开始播放音乐、enemyGroup、bulletGroup、ufoGroup函数开始调用
3.暂停事件设置:设置点击的事件及游戏暂停和游戏开始的事件(注意要更改暂停按钮的底色和显示)
4.更改及增加分数(注意要更新scoreDisplay 的数据)
5.游戏结束 跳转到结束界面

二、开始游戏
1.游戏加载界面节点挂载
2.初始化:
开始界面节点加载
加载预主界面(也可以不预加载直接主界面)
3.开始游戏
加载主界面

三、子弹(bullet)
1.设置对象:
x,y轴速度,掉血数值(cc.Integer)
2.初始化:
cc.director.getCollisionManager().enabled=true;
3.碰撞检测:
this.bulletGroup.bulletDied(self.node);
4.更新位置
更新每一帧物体的位置状态(update),每一帧位置所在,超出边界的情况。

四、子弹组(bulletGroup)
1.生成子弹位置 bPosition
2.生成子弹的对象bullet
设置每排多少子弹
3.使用对象池进行初始化
4.开始、暂停、重新开始的事件设置
5.生成子弹
6.获取子弹位置
7.子弹消亡

五、建立对象池(注意:有些变量要用let定义)
1.设置枚举类型 gameState,开始,暂停,无;
2.建立对象池:
<1>初始化,定义全局变量
<2>初始化对象池(initObjPool) ,定义对象和对象池的名字,定义数量
<3>创建节点(instantiate类型) put 进对象池
3.批量初始化对象池(batchInitObjPool)
4.生成节点:
<1>用size判断对象池是否有空闲对象,若没有则重新创立
<2>给新生成的节点挂上父节点(addChild)
5.放回对象池
6.建立全局变量 window.D { common(公共方法),commonInfo(一些常量}

六、角色(hero)
1.挂载爆炸动画、结束音、主函数、子弹组
2.初始化,eState none,开启碰撞检测(getCollisionManger)和拖动监听(onDrag).
3.添加和去除拖动监听
this.node.on(off)(‘touchmove’, this.dragMove, this);
4.拖动,确保飞机不飞出屏幕
5.碰撞检测(onCollisionEnter)播放动画、播放音效、清除节点、更新分数
6.动画结束后销毁该事件

七、敌人
1.设置敌人的x、y轴最大和最小速度,初始生命值(initHP)、初始化图像、击杀后得分、击杀音效
2.初始化,开启碰撞检测的帧渲染(getCollisionManager),随机生成x轴和y轴的速度(Math.random()*(max,min))、生成敌人组
3.update 渲染每一帧对象的位置、速度等(速度快慢要进行分级调节根据当前分数或游戏时间)、对出屏幕的对象进行回收节点(y<-parent.node.height/2)
4.碰撞检测(onCollisionEnter) 写碰撞之后HP>0和HP<=0时触发的事件(<=0时播放爆炸音效和动画
5.节点回收

八、敌人组
1.定义敌人组的属性 对象池数量、预制资源等
2.初始化:更改eState属性为全局变量中gameState.none、批量初始化对象池。
3.开始、暂停、重新开始事件
4.生成敌机
5.生成敌机的位置随机
6.敌机死亡回收节点、增加分数

九、结束
1.显示本次得分
2.游戏重新运行(返回main界面)
3.退出游戏(返回start界面)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值