cocos2d-x游戏实例(22)-纵版射击游戏(9)

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

继续上一篇的纵版射击游戏,本篇加入几个敌人的类型,效果如下:

                                                                     

我加入5种类型的敌人,分别为对称的贝塞尔曲线(两条运动轨迹对称),对称的折线(两条运动轨迹对称),直线。首先我们用随机数来决定这次出的敌人的类型,代码如下:

type = CCRANDOM_0_1() * 5;

CCRANDOM_0_1() 是引擎为我们实现的一个方法,是返回的01的随机数,我们把这个随机数乘以一个5生成的这个数是04的自然数,对应我们不同的五个类型。

前两个类型是我们之前的贝塞尔曲线的运动轨迹,代码如下:

bezierTo1 = CCBezierTo::actionWithDuration(5, bezier1);

mysprite->runAction(bezierTo1);

不同之处就是第一句话中的第二个参数分别是bezier1和bezier2,他们的定义在构造函数里面,代码如下:


就是控制点的对称的点。然后是两个折现,他们是对称的,代码如下:

路径3

actionTo1 = CCMoveTo::actionWithDuration(2, CCPointMake(30,300));

actionTo2 = CCMoveTo::actionWithDuration(2, CCPointMake(214,150));

actionTo3 = CCMoveTo::actionWithDuration(1, CCPointMake(122,-20));

mysprite->runAction(CCSequence::actions(actionTo1,actionTo2,actionTo3,NULL));

路径4

actionTo1 = CCMoveTo::actionWithDuration(2, CCPointMake(214,300));

actionTo2 = CCMoveTo::actionWithDuration(2, CCPointMake(30,150));

actionTo3 = CCMoveTo::actionWithDuration(1, CCPointMake(122,-20));

mysprite->runAction(CCSequence::actions(actionTo1,actionTo2,actionTo3,NULL));

就是对称的两条折线。最后一个敌人类型就是一直直线的轨迹运动,代码如下:

actionTo1 = CCMoveTo::actionWithDuration(5, CCPointMake(122,-20));

mysprite->runAction(actionTo1);

然后我们通过initWithFile方法为敌人更换不同的图片,这样我们这个选择类型的函数就完成了:


这个函数chooseflytype在我们初始化敌人和在每次更换敌人时调用这个函数。

到此为止,这个实例就暂时结束了,后面还会写其它的实例,其实这个实例可以再进行修改一下,包括细化ui细化敌人,包括加入敌人的编队等,我这里只是对用cocos2d-x实现纵版射击游戏做一个简单的介绍,算是抛砖引玉吧,这里也把代码上传,代码地址为:

http://download.csdn.net/detail/bill_man/4195629

另外感谢大家的支持,代码编写的时间仓促,也没什么时间重构优化,有错误和不足之处还要麻烦大家帮助我指出,谢谢大家

如有错误之处,希望大家多多指正

下一篇继续纵版射击游戏实例


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值