您的位置:首页 > 移动开发 > Cocos引擎

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

2015-07-16 15:15 597 查看
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

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



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

type = CCRANDOM_0_1() * 5;

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

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

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

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

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

下一篇继续纵版射击游戏实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: