0

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

 if([self numberOfRunningActions] > 0)

因为该动作是一个持续时间为 0 的 CCCallBlock。

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

4

3 回答 3

2

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

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

这里的 self 是带有控制游戏的状态机的 CCLayer。

于 2012-12-19T06:49:23.357 回答
0

CCCallBlock运行 ablock这是一个C函数(有点)。您不能为函数设置持续时间。

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

于 2012-12-18T22:35:22.360 回答
0
[self runAction:[CCSequence actions:[CCCallBlock actionWithBlock:^{
    NSLog(@"my block");
}], [my next function], nil]];
于 2012-12-20T16:01:57.270 回答