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

Libgdx create sequence action programmatically

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

此时我正在添加具有递增延迟的 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 可以实现这样的功能吗?

当然 - SequenceAction class

中有 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);

如果你想清除所有动作并再次"empty"序列你可以调用

    sequence.reset();