0

我正在为我的一个动画使用AnimationController,但我需要经常改变这个动画的速度。我正在寻找任何资源友好的方式来做到这一点,完美会像AnimationController.setSpeed(float speed),但遗憾的是不存在。AinmationController.animate(...)那么,当我只想改变速度而所有其他属性应该保持不变时,有没有比每次调用更好的方法?

4

2 回答 2

2

要改变整体速度,只需相应地调整更新方法的增量:

animationController.update(speed * Gdx.graphics.getDeltaTime());

要更改单个动画的速度(仅在混合动画时有用),请使用 #animate() 方法返回的 AnimationDesc 实例。

AnimationDesc ad = animationController.animate(...);
ad.speed = 0.5f;

您可以在动画期间更改 AnimationDesc。

最后,您还可以访问 AnimationController 的当前 AnimationDesc,尽管我不建议这样做:

animationController.current.speed = 0.5f;

tl;dr:最好的方法是使用 AnimationController#update(delta) 方法来改变速度。

另见:https ://github.com/libgdx/libgdx/wiki/3D-animations-and-skinning

于 2013-09-29T16:46:17.550 回答
0

我会尝试扩展AnimationController来编写setSpeed方法。希望动画速度将存储在您可以更新的变量中。

于 2013-09-29T12:49:41.740 回答