Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaFx中的动画?_Java_Javafx_Javafx 2_Javafx 8_Scenebuilder - Fatal编程技术网

javaFx中的动画?

javaFx中的动画?,java,javafx,javafx-2,javafx-8,scenebuilder,Java,Javafx,Javafx 2,Javafx 8,Scenebuilder,我最近用javaFx实现了流行游戏2048 这里我使用了一个4x4矩阵和一个4x4标签数组(放置在网格窗格上)&根据输入更新矩阵上的值,同时更新标签上的值。 结果很好 但是,由于没有动画,因此很难跟踪按键后所做的所有更改 我查看了javafx的动画库,但找不到任何方法来操纵标签以获得动画 我想知道我在这里有哪些选择,以及如何制作动画。 动画可以是任何让眼睛更容易跟随变化的东西 这里有一些东西可以让你开始。可以在x或y方向上平移节点(本例中为标签)。有一个内置的 import javafx.ani

我最近用javaFx实现了流行游戏2048

这里我使用了一个4x4矩阵和一个4x4标签数组(放置在网格窗格上)&根据输入更新矩阵上的值,同时更新标签上的值。 结果很好

但是,由于没有动画,因此很难跟踪按键后所做的所有更改

我查看了javafx的动画库,但找不到任何方法来操纵标签以获得动画

我想知道我在这里有哪些选择,以及如何制作动画。 动画可以是任何让眼睛更容易跟随变化的东西


这里有一些东西可以让你开始。可以在x或y方向上平移节点(本例中为标签)。有一个内置的

import javafx.animation.Animation;
import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class GridPaneAnimate extends Application {

    @Override
    public void start(Stage stage) {
        GridPane gp = new GridPane();
        gp.setGridLinesVisible(true);
        gp.setHgap(5);gp.setVgap(5);
        for (int i = 0; i < 4; i++){
            for (int j = 0; j < 4; j++){
                Label l = new Label(i+","+j);
                gp.add(l, i, j);
            }
        }

        Scene scene = new Scene(gp);
        stage.setScene(scene);
        stage.show();
        for (int i = 1; i < gp.getChildren().size(); i++){
            TranslateTransition tt = new TranslateTransition(Duration.millis(2000), gp.getChildren().get(i));
            tt.setByX(i%2 == 0 ? -25 : 25);
            tt.setByY(i%2 == 0 ? -25 : 25);
            tt.setCycleCount(Animation.INDEFINITE);//set to 1
            tt.setAutoReverse(true); //dont need this
            tt.play();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }

}
导入javafx.animation.animation;
导入javafx.animation.TranslateTransition;
导入javafx.application.application;
导入javafx.scene.scene;
导入javafx.scene.control.Label;
导入javafx.scene.layout.GridPane;
导入javafx.stage.stage;
导入javafx.util.Duration;
公共类GridPaneAnimate扩展了应用程序{
@凌驾
公众假期开始(阶段){
GridPane gp=新的GridPane();
gp.setGridLinesVisible(真);
设置间隙总成(5);设置间隙总成(5);
对于(int i=0;i<4;i++){
对于(int j=0;j<4;j++){
标签l=新标签(i+“,”+j);
加总成(l,i,j);
}
}
场景=新场景(gp);
舞台场景;
stage.show();
对于(int i=1;i
当然,在平移节点后,将其设置为正确的行/列位置,并将“平移”设置回0