Cocos2d-x我如何调度N节点动作动画,它们之间有延迟

时间:2014-08-22 09:51:22

标签: c++ cocos2d-x cocos2d-x-3.0

基本上我希望能够发送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();
    }
}

1 个答案:

答案 0 :(得分:2)

添加具有可变持续时间的DelayTime操作。您可以在循环中使用递增的计数器并与其相乘。

例如:DelayTime::create(1.0f * counter)