基本上我希望能够调度N个精灵的运动动画
第一个在开始时第二个在他后面10 px,第三个精灵10 px
落后第二。等等..问题是当我循环精灵的向量时,我想给它们动画,它们都同时移动。这就是我所拥有的:

 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();
    }
}

最佳答案

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

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

关于c++ - Cocos2d-x如何分配N个节点 Action 动画并在它们之间延迟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25444214/

10-11 22:05
查看更多