如何等到CCCallBlock完成?

时间:2012-12-18 15:15:23

标签: cocos2d-iphone

我在CCCallBlock中触发了几个动画。内部的每个动画都有一个持续时间,但它们的数量是在运行时定义的。在游戏中有状态机,我需要等到最后一个动画结束,但我不能用它:

 if([self numberOfRunningActions] > 0)

因为该操作是持续时间为0的CCCallBlock。

如何设置CCCallBlock操作的持续时间?可以在运行时执行吗?

3 个答案:

答案 0 :(得分:2)

由于很多原因可能是错的,但我想出了这个:

[CCCallBlock actionWithBlock:^{
         float duration = [self.cardsMatrix peepCards];
         [self runAction:[CCDelayTime actionWithDuration:duration]];
}];

这里的自我是控制游戏的状态机的CCLayer。

答案 1 :(得分:0)

CCCallBlock运行block,这是C函数(排序)。您无法设置功能的持续时间。

您可以为动画添加另一个CCCallBlock,将它们放在CCSequence中,当此CCCallBlock运行时,您就知道动画已完成。

答案 2 :(得分:0)

[self runAction:[CCSequence actions:[CCCallBlock actionWithBlock:^{
    NSLog(@"my block");
}], [my next function], nil]];