插值无效的 Actor 动作 LibGDX
Actor action with Interpolation not working LibGDX
我正在尝试通过插值向演员添加动作,但演员只是传送到没有动画的最终位置
我的 actor class 中有这个方法,我在设置动画的最终位置后调用它:
private fun addMovementAsAction(){
val action = Actions.action(MoveToAction::class.java)
action.setStartPosition(initialPosition.x, initialPosition.y)
action.setPosition(finalPosition.x, finalPosition.y)
action.duration = 2f
action.interpolation = Interpolation.linear
addAction(action)
}
然后,在我的游戏 class 中,当我单击调用 stage.act() 的按钮时,我调用了一个名为 play() 的方法。当我点击按钮时,演员跳到最终位置,没有任何动画。可能是什么?
state.act()
必须在每次调用 render()
循环时调用。如果你只在点击按钮时调用它,整个舞台大部分时间都会被冻结。如果你在调用它时将 delta
的值传递给 stage.act()
并且该增量是自上次调用它以来的整个经过时间,那么所有动画都会有一个跳跃到考虑所有错过的时间。
其他可能的罪魁祸首:你说,“我在设置动画的最终位置后调用”。如果在添加动画之前将 actor.x
和 actor.y
设置为结束位置,则您已将 actor 传送到该位置,MoveToAction 将无事可做。在动画有机会开始之前在 MoveToAction 上调用 setStartPosition
不会完成任何事情,因为它会在动画开始时自动将 Actor 的当前位置作为开始位置。 setStartPosition()
可能应该被弃用,因为它只有在动画已经开始后调用它才能完成某些事情,为什么你会想要在它已经开始后更改它?
我正在尝试通过插值向演员添加动作,但演员只是传送到没有动画的最终位置
我的 actor class 中有这个方法,我在设置动画的最终位置后调用它:
private fun addMovementAsAction(){
val action = Actions.action(MoveToAction::class.java)
action.setStartPosition(initialPosition.x, initialPosition.y)
action.setPosition(finalPosition.x, finalPosition.y)
action.duration = 2f
action.interpolation = Interpolation.linear
addAction(action)
}
然后,在我的游戏 class 中,当我单击调用 stage.act() 的按钮时,我调用了一个名为 play() 的方法。当我点击按钮时,演员跳到最终位置,没有任何动画。可能是什么?
state.act()
必须在每次调用 render()
循环时调用。如果你只在点击按钮时调用它,整个舞台大部分时间都会被冻结。如果你在调用它时将 delta
的值传递给 stage.act()
并且该增量是自上次调用它以来的整个经过时间,那么所有动画都会有一个跳跃到考虑所有错过的时间。
其他可能的罪魁祸首:你说,“我在设置动画的最终位置后调用”。如果在添加动画之前将 actor.x
和 actor.y
设置为结束位置,则您已将 actor 传送到该位置,MoveToAction 将无事可做。在动画有机会开始之前在 MoveToAction 上调用 setStartPosition
不会完成任何事情,因为它会在动画开始时自动将 Actor 的当前位置作为开始位置。 setStartPosition()
可能应该被弃用,因为它只有在动画已经开始后调用它才能完成某些事情,为什么你会想要在它已经开始后更改它?