我在 CCCallBlock 中触发了几个动画。里面的每个动画都有一个持续时间,但它们的数量是在运行时定义的。在游戏中有状态机,我需要等到最后一个动画完成,但我不能使用这个:
if([self numberOfRunningActions] > 0)
因为该动作是一个持续时间为 0 的 CCCallBlock。
如何设置 CCCallBlock 操作的持续时间?可以在运行时完成吗?
我在 CCCallBlock 中触发了几个动画。里面的每个动画都有一个持续时间,但它们的数量是在运行时定义的。在游戏中有状态机,我需要等到最后一个动画完成,但我不能使用这个:
if([self numberOfRunningActions] > 0)
因为该动作是一个持续时间为 0 的 CCCallBlock。
如何设置 CCCallBlock 操作的持续时间?可以在运行时完成吗?
由于很多原因,这可能是错误的,但我想出了这个:
[CCCallBlock actionWithBlock:^{
float duration = [self.cardsMatrix peepCards];
[self runAction:[CCDelayTime actionWithDuration:duration]];
}];
这里的 self 是带有控制游戏的状态机的 CCLayer。
CCCallBlock
运行 ablock
这是一个C
函数(有点)。您不能为函数设置持续时间。
您可以将另一个添加CCCallBlock
到您的动画中,将它们放入 a 中CCSequence
,当它CCCallBlock
运行时,您就知道动画已完成。
[self runAction:[CCSequence actions:[CCCallBlock actionWithBlock:^{
NSLog(@"my block");
}], [my next function], nil]];