Cocos-2d动作 - 让他们等待进入代码中的下一行?

时间:2011-12-11 20:09:25

标签: iphone cocos2d-iphone

基本上,我说有这个:

[sprite runAction:action];
[sprite2 runAction:action2];

在cocos2d中,这将同时执行。但是说我希望第一行在完成下一行之前完全完成,我该怎么做?

2 个答案:

答案 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];

我希望这会有所帮助。