Libgdx以编程方式创建序列操作

时间:2015-10-12 18:33:27

标签: libgdx scene2d

在我的libGDX应用程序中,我有一个需要以编程方式创建动作的actor。

在我添加moveBy动作时,为了获得所需的效果,我会添加moveBy动作,但效率非常低。像下面的东西;

actor.addAction(sequence(delay(i * DELAY), moveBy(50, 50));

如果可能,我想以编程方式创建一个单一的序列操作,并根据需要向其添加moveBy操作。然后我可以调用单个动作,而不必不断添加非常无法获得的动作。

我检查了文档,找不到任何特定于我特殊需要的内容。

我正在思考(伪代码);

addPath(Vector2 path) {

    paths.add(path);
}

invokePathAction() {

    Action sequence = sequence();
    for all paths
        sequence.add(moveBy(path.x, path.y, TIME));

    addAction(sequence);
}

libGDX可以这样吗?

1 个答案:

答案 0 :(得分:1)

当然 - SequenceAction类中有 addAction 方法

    MoveToAction action1 = new MoveToAction();
    action1.setPosition(0, 0);
    action1.setDuration(2);

    MoveToAction action2 = new MoveToAction();
    action2.setPosition(-500, 0);
    action2.setDuration(2);

    ...

    SequenceAction sequence = new SequenceAction();

    sequence.addAction(action1);
    sequence.addAction(action2);

    ...

    actor.addAction(sequence);

如果您想要清除所有操作并且有空白"你可以再次拨打电话

    sequence.reset();