在我的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可以这样吗?
答案 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();