【第22期】观点:IT 行业加班,到底有没有价值?

cocos2d-x游戏实例(19)-纵版射击游戏(6)

原创 2012年03月24日 22:05:27

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

上一篇的实例中,纵版射击游戏中加入了敌人对子弹的碰撞和爆炸特效,本篇内容将给敌人加入贝塞尔曲线的运动轨迹并且敌人会“源源不断”的出现。首先还是看一下效果图:

                                                             

其实从简单的图片上看不出我的敌人运动轨迹上的改变,这里我采用了CCAction中的贝塞尔曲线运动轨迹;贝塞尔曲线,又称贝慈曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。 在我看起来他的运动曲线比较像一个周期的正弦或余弦曲线(就是表现上比较像)。

首先来看初始化敌人的代码:


这里首先定义一个ccBezierConfig变量bezier并初始化它,首先是定义它的两个“控制点”,这两个控制点和我们的敌机走出的轨迹的“波峰”和“波谷”有关,程序中需要的这个贝塞尔曲线就像是正弦曲线旋转90度一样,所以我将controlPoint_1的横坐标向左移动,它的波谷就会向左移,相应的,我们把controlPoint_2向右移动,那么它的波峰会向右移动,然后定义整个贝塞尔曲线的终点。之后我们使用ccBezierConfig定义一个CCBezierToCCBezierTo是贝塞尔到达指定的点,而CCBezierBy则是贝塞尔曲线到达指定距离。也就是说如果你定义的是CCBezierBy,那么之前定义的控制点和终点都是与当前点的差值,也就是距离。第一个参数是时间,第二个参数就是我们之前定义的ccBezierConfig。

然后就是敌人死亡或者出屏之后的“重生”,我们首先为GameEnemy类加入一个restart函数,这个函数会在敌人重生时调用:


重新定义敌人的重生位置,将敌人变为可显示,然后为敌人加入贝塞尔曲线的逻辑。

在把敌人设置为死亡时,我们也要多做一些操作,来看setDead函数:


我们要停掉当前的动作,将主角设置为不可见。然后我们在主场景类中调用schedule(schedule_selector(MapScene::enemyrestart), 2.0f);让在2.0s后调用enemyrestart

函数,在函数中调用敌人的restart函数,让敌人“重生”。


另外,我们在敌人的逻辑函数中判断敌人是否已经出屏,若出屏则停掉所有动作,并调用敌人的“重生”函数restart。这样敌人就会“源源不断”的出现了。

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

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


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

cocos2d-x游戏实例(14)-纵版射击游戏(1)

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 从本篇开始,实现一个简单的纵版射击游戏,...

cocos2d-x游戏实例(14)-纵版射击游戏(1)

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 从本篇开始,实现一个简单的纵版射击游戏,本篇先简单搭建一个简单的主角飞机移动的例子。首先看实现效果 <img src="http://hi.csdn.net/a
  • isiqi
  • isiqi
  • 2012-03-10 23:24
  • 367

cocos2d-x游戏实例(21)-纵版射击游戏(8)

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 上一篇为敌人添加了子弹,本篇为主角添加受...

cocos2d-x游戏实例(15)-纵版射击游戏(2)

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 上一篇介绍了纵版射击游戏的基本的搭建,本篇进一步完善,我们继续完善我们的游戏,首先,在纵版射击游戏中,我们有很多游戏元素,包括主角,子弹,敌人等,我们首先把所有的这些定义一个基类<span style="font-family:
  • isiqi
  • isiqi
  • 2012-03-10 23:27
  • 300

cocos2d-x游戏实例(21)-纵版射击游戏(8)

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 上一篇为敌人添加了子弹,本篇为主角添...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)