基本上我希望能够发送N个精灵的运动动画
第一个是在开始时第二个是他后面10 px和第三个精灵10px
在第二个后面。等等..问题是当我循环我想要动画的精灵矢量时,他们都在同一时间移动。这就是我所拥有的:
Vector<Node*> OnlyCoinsContainertChildren = this->pOnlyCoinsContainer->getChildren();
for (auto iter = OnlyCoinsContainertChildren.begin(); iter != OnlyCoinsContainertChildren.end(); ++iter)
{
Sign* pCoin = static_cast<Sign*>(*iter);
if(pCoin->getTag() == COIN)
{
auto action1 = Sequence::create(
MoveBy::create(1.0f,vec),
// DelayTime::create(1.0f),
CallFunc::create( std::bind(&SolutionContainer::CoinsToScoreViewAnimationCallback,
this,
pCoin)),
RemoveSelf::create(),
NULL);
pCoin->runAction(action1);
}
}
void SolutionContainer::CoinsToScoreViewAnimationCallback(Node* sender)
{
++iCoinsToScoreCount;
if(iNumberOfCoinsCount==iCoinsToScoreCount)
{
this->InnerCleanPreviousLevel();
}
}
答案 0 :(得分:2)
添加具有可变持续时间的DelayTime操作。您可以在循环中使用递增的计数器并与其相乘。
例如:DelayTime::create(1.0f * counter)