基本上,说我有这个:

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

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

===============>>#1 票数:2 已采纳

在第一个sprite上,运行[action,startSprite2]的CCSequence,其中startSprite2是另一个动作(CCCallFunc)。 “操作”完成后,将调用startSprite2例程例程。 将其添加到模块中,然后在该例程中启动sprite2操作。

===============>>#2 票数: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];

我希望这有帮助。

  ask by Jordan Brown translate from so

未解决问题?本站智能推荐: