我有一个对象数组(objArray)和一个动作数组(actArray)。两个数组都是按顺序排列的,我的意思是,位于objArray索引0处的对象必须对actArray执行操作0。
为了使说明清楚,让我们想象两个数组都有3个对象,分别为obj0,obj1和obj2。
obj0 has to perform action 0 on actArray
obj1 has to perform action 1 on actArray
obj2 has to perform action 2 on actArray
这3个操作(如果是数组,则为n)必须同时发生。
当所有动画结束时,我需要调用animationsFinished方法。
我怎么做?
我从科科斯开始。我到处搜寻,却找不到任何实际的例子。我找到了CCSpan,但是我看不到如何将它与多个对象一起使用,每个对象都有自己的动作。谢谢。
最佳答案
您可以按顺序执行这些操作,它们将同时发生。
int yourAnimationDuration; //this needs to be set to whatever your animation speed is
for(int idx = 0; idx < 3; idx++) {
[[objArray objectAtIndex:idx] runAction:[actArray objectAtIndex:idx]];
[self performSelector:@selector(someMethodToBeExecutedWhenAnimationFinishes) withObject:nil afterDelay:yourAnimationDuration];
}
或者,如果您希望仅将动画完成方法执行一次,只需将其从for循环中删除即可。
编辑:
id finalAnimation = [CCSequence actionOne:[actArray objectAtIndex:idx] two:someMethod];
我(相信)将在第一个操作完成后执行您的方法。