关于Sequence与Spawn的用法

想实现一个功能,让 sprite根据给予的一条路径(std::vectorcocos2d::Point path)移动,具体代码如下


Vector< FiniteTimeAction * > fta;
std::vector<cocos2d::Point> path
while (!path.empty()) {
...
 auto des = path.back()
 auto moveAction = MoveTo::create(des.distance(currenctPistion) / 34, des);
...
 auto aniForever = RepeatForever::create(moveAnimation);
 auto seq = Sequence::create(moveAction, CallFunc::create(CC_CALLBACK_0(Barbarian::stopAnimation, this, aniForever)), NULL);
 auto spw = Spawn::create(aniForever, seq, NULL);
fta.pushBack(spw);

...
}
auto seq = Sequence::create(fta);
sprite->runAction(seq);

这样的话,当moveAction结束的时候,会调用stopAnimation将animation停止, stopAnimation代码如下

void CharacterBase::stopAnimation(cocos2d::RepeatForever *ani)
{
    CCLOG("STOP ANIMATION");
    this->sprite->stopAction(ani);
}

但结果是,移动是移动了,但是没有animation表现出来,不知道哪里出现了问题

直接用BezierTo不就得了。:14::14::14: