小满(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(5,85); font-family:'microsoft yahei'; font-size:15px; line-height:35px"> mysprite->runAction(actionTo1);
然后我们通过initWithFile方法为敌人更换不同的图片,这样我们这个选择类型的函数就完成了:
这个函数chooseflytype在我们初始化敌人和在每次更换敌人时调用这个函数。
到此为止,这个实例就暂时结束了,后面还会写其它的实例,其实这个实例可以再进行修改一下,包括细化ui细化敌人,包括加入敌人的编队等,我这里只是对用cocos2d-x实现纵版射击游戏做一个简单的介绍,算是抛砖引玉吧,这里也把代码上传,代码地址为:
http://download.csdn.net/detail/bill_man/4195629
另外感谢大家的支持,代码编写的时间仓促,也没什么时间重构优化,有错误和不足之处还要麻烦大家帮助我指出,谢谢大家
如有错误之处,希望大家多多指正
下一篇继续纵版射击游戏实例