0

简短的故事是我有精灵我想向下移动我在循环
中使用 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);

    }
4

2 回答 2

2

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

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

于 2013-09-17T10:03:22.440 回答
1

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

于 2013-09-17T08:22:15.543 回答