2014-08-30 100 views
2

我正在使用JavaFX製作一個簡單的sidescrolling成熟器射擊遊戲。我想要一個非常簡單的角色拋物線跳躍動畫。目前,該字符擴展了StackPane,並且它位於Scene上。我被告知使用Interpolator.SPLINE進行跳躍動畫,但似乎沒有奏效。 目前,我有:使用javafx的拋物線跳躍動畫

public void Jump(){ 
    TranslateTransition translation = new TranslateTransition(Duration.millis(1), this); 
    translation.interpolatorProperty().set(Interpolator.SPLINE(.1, .1, .7, .7)); 
    translation.play(); 
} 

但它似乎並沒有動。然而,我的其他動畫命令(左移和右移)正在使用簡單的轉換轉換。我在做什麼錯誤的跳轉功能?

回答

1

你有2個問題:

  • ,您需要設置其中使用插值,例如移動你的轉變不動任何東西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();