我有三个问题。>。<
我有2个演员(actor1,actor2)和一个动作(例如ScaleTo)。我愿意让actor1首先做scale,然后(也许是两秒钟后)actor2。或者随机选择演员来表现动作,并重复这个过程n次。
有没有像squenceAction这样的方法,但可能就像这个“序列(Actor1.action,delay,Actor2.action,......)”
或者是否有时间线API,我可以将演员的动作放在几个特定的时间点上?
答案 0 :(得分:1)
如果是更正确的方式,那就不行了,但是如果我理解了你的问题,你可以把你的问题放在你的听众身上,例如:
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秒之前,将它放在第二个演员的第二个延迟时间,以便开始amimacion in第二个演员。
测试: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:我希望你能理解我说的话。