在游戏中,游戏对象有时不是执行一个动作,有时是多个动作的动作序列,有时是同时执行几个动作序列。这时候就需要使用组合动作的方式将多个动作或按序列组织,或合成在一起。下面我们就来看一下几个比较常用的动作组合类:
1、CCSequence:动作序列,可以使用动作的CCArray数组,也可以把所有的动作作为参数传入create函数中,最后结尾参数使用NULL(空值)即可,还可以把两个有限时间动作按顺序传入create函数中。使用代码如下:
1 CCFiniteTimeAction* seq = CCSequence::create(action1, action2, action3, action4, NULL);
2 m_kamara->runAction( seq );
2、CCSpawn:使被合成的动作同时进行。使用代码如下:
1 CCAction* action = CCSpawn::create( CCJumpBy::create( 2, CCPointMake(300, 0), 50, 4), CCRotateBy::create( 2, 700 ), NULL );
2
3 m_kamara->runAction( action );
3、CCRepeat和CCRepeatForever:动作重复播放类,CCRepeat可以在第二个参数中定义重复次数,而CCRepeatForever类是一直重复的。使用示例如下:
1 //参数: 动作、重复的次数(范围是1到2的30次方)
2 CCActionInterval* rep = CCRepeat::create( (CCFiniteTimeAction*) (action->copy()->autorelease()), 5 );
3
4 CCAction* repf = CCRepeatForever::create( (CCActionInterval*) action->copy()->autorelease() );