基本上,我说有这个:
[sprite runAction:action];
[sprite2 runAction:action2];
在cocos2d中,这将同时执行。但是说我希望第一行在完成下一行之前完全完成,我该怎么做?
答案 0 :(得分:2)
在第一个sprite上运行[action,startSprite2]的CCSequence,其中startSprite2是另一个动作(CCCallFunc)。当'action'完成时,将调用startSprite2例程例程。将其添加到您的模块中,然后在该例程中启动您的sprite2操作。
答案 1 :(得分:1)
@YvesLeborg的回答是正确的。还有很多其他方法可以做到这一点。一种方法可以是这样的。为每个精灵动作创建两个函数,如
-(void)runSprite1Action{
[sprite1 runAction:action];
}
-(void)runSprite2Action{
[sprite2 runAction:action2];
}
然后在父场景/图层上你可以添加一个CCSequence动作,它将首先调用第一个动作,然后当第一个动作完成运行时,它将调用第二个动作。即
CCSequence *sequence = [CCSequence actions:[CCCallFunc actionWithTarget:self selector:@selector(runSprite1Action)],
[CCCallFunc actionWithTarget:self selector:@selector(runSprite2Action)], nil];
[self runAction:sequence];
我希望这会有所帮助。