如何让演员在Libgdx中一个接一个地做特定的动作

How to make actors do the specific action one after another in Libgdx

我有三个问题。>.<

  1. 我有 2 个演员(演员 1、演员 2)和一个动作(例如 ScaleTo)。我的意愿是让 actor1 首先执行 scaleTo,然后(可能在两秒后)actor2。或者随机选择演员表演动作,重复这个过程n次。

  2. 有没有类似squenceAction的方法,但是可以这样"sequence(Actor1.action,delay,Actor2.action,......)"

  3. 或者有时间轴API可以把演员的动作放在几个特定的​​时间点吗?

不是更正确的方法,但我突然想到,如果我理解你的问题,你可以在你的听众中加入这个:

Actor1.addAction(Actions.sequence(Actions.delay(0.1f),
                                 Actions.parallel(
                                 Actions.moveBy(0f, 600, 1f),
                                 Actions.fadeOut(0.8f))));

在你的渲染中:

if (Actor1.getActions().size == 0) {

Actor2.addAction(Actions.sequence(Actions.delay(0.2f),
                                  Actions.parallel(
                                  Actions.moveBy(0f, 600, 1f),
                                  Actions.fadeOut(0.8f))));

//Actor1.addAction(Actions......add actions to the actor one again or
// whatever you can think is that it's not what you really want to do,
// but you can handle yourself with the method called from the if
}

取决于你想做什么,我认为最好让第一个演员完成动作多长时间,例如2秒之前,把它放在第二个演员两秒延迟,开始第二个演员的友情。

测试:0.2f + 1.8,不是 + fadeOut 因为是平行的

Actor1.addAction(Actions.sequence(Actions.delay(0.2f),
                                 Actions.parallel(
                                 Actions.moveBy(0f, 600, 1.8f),
                                 Actions.fadeOut(0.8f))));

添加延迟; 2.1f

Actor2.addAction(Actions.sequence(Actions.delay(2.1f),
                                  Actions.parallel(
                                  Actions.moveBy(0f, 600, 1f),
                                  Actions.fadeOut(0.8f))));

P.S:希望你能看懂我说的