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();
在我的 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();