短篇小说是我有精灵我想向下移动我在循环中使用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);
}
答案 0 :(得分:2)
您可以使用CCDelayTime操作 - 它的作用是简单地在操作之前或之间引入延迟,具体取决于您将其放在序列中的位置。 如果您能够计算等待所需的时间,这当然是可行的。
另一个解决方案可能是创建子类并编写自己的操作,这可能会耗费更多时间,但可以让您更好地控制实际发生的事情。
答案 1 :(得分:1)
您可以在移动操作中依次使用CCCallFunc操作来创建动画结束回调。在那里,您可以检查是否需要再次运行动画。运行每个只有一个CCMoveTo操作和CCCallFunc操作的序列。