cocos2d动画怎么重用

auto action1 = Sequence::create( moveTo,hide, NULL);

fsprite1->runAction(action1);

fsprite2->runAction(action1);

fsprite3->runAction(action1);

你可以把action封装到一个类中,既安全又实用

for example:

class Actions

{

public:

static Action* getAction();

};

Action* Actions::getAction()

{

return (Sequence::create( moveTo,hide, NULL));

}

使用时:

fsprite1->runAction(Actions::getAction());

fsprite2->runAction(Actions::getAction());

fsprite3->runAction(Actions::getAction());

就没问题了。

找到了clone()

fsprite1->runAction(action1);

fsprite2->runAction(action1.clone());

fsprite3->runAction(action1.clone());


原理是每个action都是一个类,保存运行时的信息,如果都调用这个类只有第一个被执行,所以调用clone()函数产生3个类分别执行三个action