cocos2d-x 2.2.3
动作可能稍微复杂点,但本以为使用CCSequence及CCSpawn可以很方便的实现,结果却不行。
我要实现的动作是:
一个精灵:
先上移100,
然后等待1秒,
然后下落500,
然后自身开始旋转,
同时左移200,
再下落150,
再左移300,
后边3个过程一直保持自身旋转。
我一开始是这样执行的:
CCFiniteTimeAction* up100=CCMoveBy::create(0,ccp(0,100)); //提升100
CCFiniteTimeAction* wait0=CCMoveBy::create(1,ccp(0,0)); //等待1秒
CCFiniteTimeAction* jump500=CCJumpBy::create(0.75f,ccp(0,-500),0,1); //落下500
CCFiniteTimeAction* rotate=CCRotateBy::create(10,-3600);//转动
CCFiniteTimeAction* left200=CCMoveBy::create(2,ccp(200,0)); //左移200
CCFiniteTimeAction* jump150=CCJumpBy::create(0.25f,ccp(0,-150),0,1); //落下150
CCFiniteTimeAction* left300=CCMoveBy::create(3,ccp(300,0)); //左移300
CCAction* sequence0=CCSequence::create(up100, wait0, jump500 , NULL); //前3个动作按顺序进行
CCAction* sequence1=CCSequence::create(left200, jump150, left300, NULL); //后3个动作按顺序进行
CCAction* spawn=CCSpawn::create(rotate,sequence1,NULL); //旋转和后3个动作一起
CCAction* sequence=CCSequence::create(sequence0,spawn,NULL); //先前3动作,再后三+旋转
sprite->runAction(sequence);
但是不行,
CCAction* sequence=CCSequence::create(sequence0,spawn,NULL);
这一行报错,似乎参数不对:
error C2665: “cocos2d::CCSequence::create”: 2 个重载中没有一个可以转换所有参数类型
可能是“cocos2d::CCSequence *cocos2d::CCSequence::create(cocos2d::CCFiniteTimeAction *,…)”
1> 尝试匹配参数列表“(cocos2d::CCAction *, cocos2d::CCAction *, int)”时
那么要想实现效果,应该如何做呢?