Libgdx如何在一个动作之后执行代码?

3

演员行动后如何执行Java代码?

对我来说,一次性执行这段Java代码非常重要。

1个回答

12

是的,有一个 RunnableAction 可以做到这一点,你需要提供一个 Runnable,然后可以通过一个 SequenceAction 对其进行排队。

import static com.badlogic.gdx.scenes.scene2d.actions.Actions.*;

Actor actor = new Image();
actor.addAction(moveTo(10, 20, 0.5f));
RunnableAction run = new RunnableAction();
run.setRunnable(new Runnable() {
    @Override
    public void run() {
        System.out.println("LEEEROOOOOY JEEEEEEENKINS");
    }
});
actor.addAction(sequence(moveTo(200, 100, 2), run));

Runnable r = new Runnable(){ ...override...}actor.addAction(sequence(...whatever..., Actions.run(r)))有什么问题? - fr_andres
@fr_andres 绝对没有任何改变。它完全相同,只是稍微短了一点。 - noone
太好了!谢谢。我也觉得run(r)版本更易读,但这可能是因为我更习惯它。 - fr_andres
这里有一个关于如何使用RunnableAction的演示/代码示例:https://libgdx.info/runnable-action/ 您可以使用SequenceAction执行该代码,以在另一个操作之后执行它。 - Julien
如果您想将不同的“Runnable”设置到同一个“RunnableAction”中,请不要忘记调用“runnableAction.reset()”,否则只有第一个“Runnable”将被执行。 - Yan.F

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接