JavaFX 8动画

时间:2016-04-25 16:01:59

标签: animation javafx

我正在尝试创建一个连续的动画,最终目标将是一个弹跳球从屏幕的边缘反弹,但是,一步一步。

我从Oracle的示例代码开始,该代码具有移动40秒的圆圈动画。

public void start(Stage primaryStage) 
{
    Group root = new Group();
    Scene scene = new Scene(root, 800, 600);
    primaryStage.setScene(scene);



    Group circles = new Group();
    for (int i = 0; i < 1; i++) 
    {
       MovingCircle circle = new MovingCircle(150, Color.web("white", 0.05));
       circle.setStrokeType(StrokeType.OUTSIDE);
       circle.setStroke(Color.web("black", 0.16));
       circle.setStrokeWidth(4);
       circles.getChildren().add(circle);
    }
    root.getChildren().add(circles);





    Timeline timeline = new Timeline();
    timeline.setCycleCount(Timeline.INDEFINITE);
    for (Node circle: circles.getChildren()) 
    {
            if(circle instanceof MovingCircle)
            {
                MovingCircle c = (MovingCircle)circle;

                timeline.getKeyFrames().addAll(
           /* new KeyFrame(Duration.ZERO, // set start position at 0
                new KeyValue(circle.translateXProperty(), random() * 800),
                new KeyValue(circle.translateYProperty(), random() * 600)
            ),*/
            new KeyFrame(new Duration(10), // set end position at 40s
                c.getXMovement(), c.getYMovement())

            );
                c.updateCenter();
            }

    }
    // play 40s of animation
    timeline.play();



    primaryStage.show();
}

我创建了一个新的MovingCircle,它扩展了Circle,以便稍后尝试添加其他东西。这两个新类方法完全返回从给定的默认代码中注释掉的内容。

我将周期改为无限期,以便它永远存在。虽然所有圆圈都在其原始起点和平移点之间反弹。我已经尝试更新其中心位置,希望下次反弹会将其移动到不同的位置,但是,这不起作用。

我对于接下来要尝试的更多工作方式感到十分茫然。

0 个答案:

没有答案