Cocos2d iphone 如何等待CCCallBlock完成?

Cocos2d iphone 如何等待CCCallBlock完成?,cocos2d-iphone,Cocos2d Iphone,我在CCCallBlock中触发了几个动画。内部的每个动画都有一个持续时间,但其数量是在运行时定义的。游戏中有状态机,我需要等到最后一个动画完成,但我不能使用这个: if([self numberOfRunningActions] > 0) 因为该操作是持续时间为0的CCCallBlock 如何设置CCCallBlock操作的持续时间?是否可以在运行时执行此操作?CCCallBlock运行一个block,这是一个C函数(排序)。不能为函数设置持续时间 您可以将另一个CCCallBloc

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

 if([self numberOfRunningActions] > 0)
因为该操作是持续时间为0的CCCallBlock


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

CCCallBlock
运行一个
block
,这是一个
C
函数(排序)。不能为函数设置持续时间


您可以将另一个
CCCallBlock
添加到动画中,将它们放入
CCSequence
中,当这个
CCCallBlock
运行时,您知道动画已经完成。

这可能是错误的,原因很多,但我提出了以下建议:

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

赛尔夫是一个拥有控制游戏的状态机的CCLayer。

你说得对,但是如果不修改游戏的几个部分,我就不能添加这些动画。我的代码乱七八糟,我不得不想出我上面发布的技巧。糟糕,太糟糕了。谢谢这不会起作用,因为我必须等到块中的代码完成后才能触发下一个函数。我知道CCSequence是如何工作的。
[self runAction:[CCSequence actions:[CCCallBlock actionWithBlock:^{
    NSLog(@"my block");
}], [my next function], nil]];