设置是哪个CCNode要进行当前动画 (重点原因在这里!!!)
//! called before the action start. It will also set the target.
void CCAction::startWithTarget(CCNode *aTarget)
{
m_pOriginalTarget = m_pTarget = aTarget;
}
每一个CCAction对象都有且仅有一个target(id 类型)的成员,表示该动画是有哪一个演员来执行的。
对于同一个move(CCMoveTo对象)来说,第一次sprite1:: runAction我们将move的target成员设置成了sprite1;而第二次sprite2::runAction:move我们又将move的target成员设置成了sprite2;这样第一次注册sprite1的动画move就会失效;
因此效果上只有sprite2在执行move了!
参考TestCpp中的例子,可以做类似如下设置
blue->runAction(rot);
red->runAction((CCAction *)(rot->copy()->autorelease()));
参考文章