使用javafx的抛物线跳跃动画

时间:2014-08-30 23:19:36

标签: animation javafx javafx-2 javafx-8

我正在使用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();
}

但它似乎根本没动。我的其他动画命令(向左移动和向右移动)正在使用简单的平移过渡。我在跳跃功能上做错了什么?

1 个答案:

答案 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();