我正在使用JavaFX制作一个简单的侧面平台游戏射击游戏。我想要一个非常简单的抛物线跳跃动画的角色。目前,角色扩展了StackPane,它存在于场景中。有人告诉我使用Interpolator.SPLINE跳转动画,但它似乎没有用。 目前,我有:
public void Jump(){
TranslateTransition translation = new TranslateTransition(Duration.millis(1), this);
translation.interpolatorProperty().set(Interpolator.SPLINE(.1, .1, .7, .7));
translation.play();
}
但它似乎根本没动。我的其他动画命令(向左移动和向右移动)正在使用简单的平移过渡。我在跳跃功能上做错了什么?
答案 0 :(得分:1)
你有两个问题:
translation.setByY(-50);
Duration.millis(1)
是1毫秒,你看不到任何动作如此之快。试试500 另外,如果你想要跳跃,你也需要提供回球运动。最简单的方法是通过以下方式恢复当前的转换:
translation.setAutoReverse(true);
translation.setCycleCount(2);
示例:
TranslateTransition translation = new TranslateTransition(Duration.millis(500), this);
translation.interpolatorProperty().set(Interpolator.SPLINE(.1, .1, .7, .7));
translation.setByY(-50);
translation.setAutoReverse(true);
translation.setCycleCount(2);
translation.play();