如何制作动作动画时机正确?

时间:2013-09-17 06:03:34

标签: cocos2d-x

短篇小说是我有精灵我想向下移动我在循环中使用CCMoveTo动作
问题是我不能或者没有找到“等待”直到预览动画结束。开始下一个。
主要的问题是我不知道会有多少精灵,所以我不能使用固定数量的动作CCSequence。

int GemsToRemoveHolderCount = GemsToRemoveHolder->count();

    for(int i=0;i<GemsToRemoveHolderCount;i++)
    {

            Gem* gemNew = (Gem*)GemsToRemoveHolder->objectAtIndex(i);
            CCPoint posNew = gemNew->getGemPos();
            CCMoveTo *moveGemDownAction = CCMoveTo::create(0.3f,posNew);
            gemNew->runAction(moveGemDownAction);

    }

2 个答案:

答案 0 :(得分:2)

您可以使用CCDelayTime操作 - 它的作用是简单地在操作之前或之间引入延迟,具体取决于您将其放在序列中的位置。 如果您能够计算等待所需的时间,这当然是可行的。

另一个解决方案可能是创建子类并编写自己的操作,这可能会耗费更多时间,但可以让您更好地控制实际发生的事情。

答案 1 :(得分:1)

您可以在移动操作中依次使用CCCallFunc操作来创建动画结束回调。在那里,您可以检查是否需要再次运行动画。运行每个只有一个CCMoveTo操作和CCCallFunc操作的序列。