Cocos 2D是否可以在执行期间向节点添加更多CCAction?

时间:2012-12-15 06:20:36

标签: ios cocos2d-iphone ccaction

我的游戏中有一个节点,我希望能够在已经开始执行后排队其他操作。这甚至可能吗?

4 个答案:

答案 0 :(得分:0)

你可以澄清一下吗?您可以向已执行操作的sprite添加操作。如果您希望以后再运行某个操作,可以使用scheduleOnce;这将允许您在指定的持续时间后执行方法。

答案 1 :(得分:0)

是的,这是可能的。查看CCSequence(序列中运行的一系列操作)和CCSpawn(生成新操作,在使用序列时特别有用)。

你不应该做的唯一事情是同时运行两种相同类型的动作。例如,多个CCMove *或CCTint *操作。这是因为它们会覆盖彼此的变化,这将导致奇怪的行为。

答案 2 :(得分:0)

我不认为您可以在进行中修改序列,但是您可以添加“CCCallXYZ”操作来安排“一次性”类方法,您可以采取任何操作,包括为您的对象定义新的操作序列。时间和控制可能很棘手:)

答案 3 :(得分:0)

只是一个想法,尚未尝试过。 当你构建你的CCSequence作为最后一个动作放置一个CCCallBlock时,你将拥有机械主义来获得你在运行时添加的额外动作。 我正在写这里的伪代码。 块appendend作为动作看起来像这样:

{
     CCSequence *additionalActions = [MyRuntimeActionClass getAdditionalActionsForObject:spriteRunningTheAction];
     if(additionalActions)
          [spriteRunningTheAction runAction:additionalActions]
}

如果我们为对象存储了其他操作,我们会得到序列并运行它。 additionalActions可以存储一个Dictionary,其中包含要运行的对象的地址(spriteRunningTheAction),并为要附加的CCSequence值