如何让演员在Libgdx中一个接一个地做特定的动作
How to make actors do the specific action one after another in Libgdx
我有三个问题。>.<
我有 2 个演员(演员 1、演员 2)和一个动作(例如 ScaleTo)。我的意愿是让 actor1 首先执行 scaleTo,然后(可能在两秒后)actor2。或者随机选择演员表演动作,重复这个过程n次。
有没有类似squenceAction的方法,但是可以这样"sequence(Actor1.action,delay,Actor2.action,......)"
或者有时间轴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:希望你能看懂我说的
我有三个问题。>.<
我有 2 个演员(演员 1、演员 2)和一个动作(例如 ScaleTo)。我的意愿是让 actor1 首先执行 scaleTo,然后(可能在两秒后)actor2。或者随机选择演员表演动作,重复这个过程n次。
有没有类似squenceAction的方法,但是可以这样"sequence(Actor1.action,delay,Actor2.action,......)"
或者有时间轴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:希望你能看懂我说的