使用lua访问cocos 2d中的动作序列的子动作

时间:2014-08-29 09:22:56

标签: lua cocos2d-x

我有一个这样的动作序列:

cc.Sequence:create(move_ease_in, cc.CallFunc:create(calls1), move_ease_in_back, cc.CallFunc:create(calls2))

我想将操作复制到另一个sprite,但删除所有CallFunc操作。因此,我需要解析操作并访问操作树中的每个节点以删除特定操作。

我知道我可以这样做:

anotherSprite:runAction(cc.Sequence:create(move_ease_in, move_ease_in_back))

但是我的程序中的实际操作要复杂得多,并且操作太多,所以我必须在不再对整个操作进行硬编码的情况下执行此操作。

换句话说,有没有办法访问某个动作的所有子动作并获取lua中每个动作的类型?

我使用的是cocos 2d 3.0 + lua 5.1

1 个答案:

答案 0 :(得分:0)

您无法访问cc.Sequence的子操作。在其C ++实现中,Sequence仅包含2个子操作。如果您创建一个包含3个子操作的Sequence,则序列将如下所示:Sequence(action1, Sequence(action2, action3))

因此,如果您确实需要访问子操作,则可以扩展cc.Sequence,并将子操作保存在扩展类中,以便您可以访问它们。