如何先播放一个序列动画,然后接着播放一个无限循环序列动画?

rt。类似ARPG中,角色在待机状态,然后攻击的时候播放攻击动画,攻击动画播放完成后无限循环播放待机动画。我本来想用CCSequence里面放一个CCRepeatForever,但是运行起来是不对的。还请高手指点!!

方法1:可以用1个action和一个actionDone,第一个结束之后再播放repeatForever

方法2:

CCSequence *gSequenceAction(CCArray *actions)
{
  CC_ASSERT(actions->count()>1);
  CCSequence *seq = CCSequence::actionOneTwo((CCFiniteTimeAction*)actions->objectAtIndex(0),
    (CCFiniteTimeAction*)actions->objectAtIndex(1));
  for (unsigned int i = 2; i < actions->count(); ++i) {
    seq = CCSequence::actionOneTwo(seq, (CCFiniteTimeAction*)actions->objectAtIndex(i));
  }
  return seq;
}

CCSequence *gSequenceAction(CCFiniteTimeAction *pAction1, CCFiniteTimeAction *pAction2, …)
{
va_list params;
va_start(params, pAction2);

CCSequence *pPrev = CCSequence::actionOneTwo(pAction1, pAction2);
CCFiniteTimeAction *pNow = NULL;

while( pPrev ) {
pNow = va_arg(params, CCFiniteTimeAction*);
if (pNow)
{
pPrev = CCSequence::actionOneTwo(pPrev, pNow);
}
else
{
break;
}
}
va_end(params);
return pPrev;
}

</p>

没看太明白。。。。

没看太明白。。。。
方法1里面的actionDone是什么?
方法2里面使用actionOneTwo也不能达到最后一个动画循环啊?
还望指点

运行不对是因为,CCSequence是一个动作播完了播下一个动作,但是CCRepeatForever播完了会自动重播自己,所以就永远停在CCRepeatForever了,这样CCSequence后面的东西都无法继续,所以设计的时候就不允许这样使用。解决方法是分开来手动先播action1,action1播完了再播CCRepeatForever,也就是方法1啦

先拨一个action1,如何检测action1播放完成了呢?

官方论坛的相关讨论帖子,提供了多种解决方法,方法2也是这里来的http://www.cocos2d-x.org/boards/6/topics/7219

CCSequence里是可以用CCCallFunc的,这是基础。建议先多看看基础的内容再着手开发,不然问题一大堆

CCSequence里是可以用CCCallFunc的 正解!!