我的javafx游戏的问题

我的javafx游戏的问题,java,javafx,logic,Java,Javafx,Logic,我现在有两个问题。最大的问题是左上角的棋子没有移动,但右下角的棋子在移动。下一个问题是,我希望碎片能够在选定的瓷砖上捕捉到位。任何帮助都将不胜感激,谢谢 package test; import javafx.application.*; import javafx.scene.Cursor; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; im

我现在有两个问题。最大的问题是左上角的棋子没有移动,但右下角的棋子在移动。下一个问题是,我希望碎片能够在选定的瓷砖上捕捉到位。任何帮助都将不胜感激,谢谢

 package test;

import javafx.application.*;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.TilePane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Board extends Application {


Pane player1 = new Pane();
Pane player2 = new Pane();
TilePane tp = new TilePane();
final int TILE_SIZE = 50;
int[][] logic = {{1, 1, 1, 1, 0, 0, 0, 0,
                  1, 1, 1, 0, 0, 0, 0, 0,
                  1, 1, 0, 0, 0, 0, 0, 0,
                  1, 0, 0, 0, 0, 0, 0, 0,
                  0, 0, 0, 0, 0, 0, 0, 2,
                  0, 0, 0, 0, 0, 0, 2, 2,
                  0, 0, 0, 0, 0, 2, 2, 2,
                  0, 0, 0, 0, 2, 2, 2, 2}};


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

public void start(Stage ps) {

    StackPane sp = new StackPane();

    setTile();  
    setPlayer1Pieces();
    setPlayer2Pieces();


    sp.getChildren().addAll(tp, player1, player2);
    Scene s = new Scene(sp, 390, 390);

    ps.setScene(s);
    ps.setTitle("PP2 Halma Project");
    ps.setResizable(false);
    ps.show();
}

public void setTile() {
    final int size = 8;

    for (int k = 0; k < size; k++) {

        if (k == 0 || k % 2 == 0) {

            for (int i = 0; i < size; i++) {

                if (i == 0 || i % 2 == 0) {
                    Rectangle r = new Rectangle();
                    r.setWidth(50);
                    r.setHeight(50);
                    r.setFill(Color.web("lemonchiffon"));
                    tp.getChildren().add(r);
                }

                if (i % 2 == 1) {
                    Rectangle r = new Rectangle();
                    r.setWidth(50);
                    r.setHeight(50);
                    r.setFill(Color.web("brown"));
                    tp.getChildren().add(r);
                }
            }
        }

        if (k % 2 == 1) {

            for (int i = 0; i < size; i++) {

                if (i == 0 || i % 2 == 0) {
                    Rectangle r = new Rectangle();
                    r.setWidth(50);
                    r.setHeight(50);
                    r.setFill(Color.web("brown"));
                    tp.getChildren().add(r);
                }

                if (i % 2 == 1) {
                    Rectangle r = new Rectangle();
                    r.setWidth(50);
                    r.setHeight(50);
                    r.setFill(Color.web("lemonchiffon"));
                    tp.getChildren().add(r);
                }
            }
        }
    }
}

public void setPlayer2Pieces() {
    int count = 4;

    do {
        for (int i = 4; i >= 1; i--) {
            for (int j = 1; j < i; j++) {

                if (count == 4) {
                    Circle c = new Circle();
                    c.setRadius(20);
                    c.setCenterX(375);
                    c.setCenterY(225);
                    c.setFill(Color.web("#B7B8B6"));
                    c.setOnMouseDragged(e -> {
                        c.setCenterX(e.getSceneX());
                        c.setCenterY(e.getSceneY());
                    });

                    player2.getChildren().add(c);
                }

                if (count == 3) {
                    for (int x = 375; x > 275; x-= 50) {
                        Circle c = new Circle();
                        c.setRadius(20);
                        c.setCenterX(x);
                        c.setCenterY(275);
                        c.setFill(Color.web("#B7B8B6"));

                        c.setOnMouseDragged(e -> {
                            c.setCenterX(e.getSceneX());
                            c.setCenterY(e.getSceneY());
                        });
                        player2.getChildren().add(c);
                    }
                }

                if (count == 2) {
                    for (int x = 375; x > 225; x-= 50) {
                        Circle c = new Circle();
                        c.setRadius(20);
                        c.setCenterX(x);
                        c.setCenterY(325);
                        c.setFill(Color.web("#B7B8B6"));

                        c.setOnMouseDragged(e -> {
                            c.setCenterX(e.getSceneX());
                            c.setCenterY(e.getSceneY());
                        });
                        player2.getChildren().add(c);
                    }
                }

                if (count == 1) {
                    for (int x = 375; x > 175; x-= 50) {
                        Circle c = new Circle();
                        c.setRadius(20);
                        c.setCenterX(x);
                        c.setCenterY(375);
                        c.setFill(Color.web("#B7B8B6"));

                        c.setOnMouseDragged(e -> {
                            c.setCenterX(e.getSceneX());
                            c.setCenterY(e.getSceneY());
                        });
                        player2.getChildren().add(c);
                    }
                }
                count--;
            }   
        }
    } while (count > 0);
}

public void setPlayer1Pieces() {
    int count = 1;
    do {
        for (int i = 4; i >= 1; i--) {
            for (int j = 1; j <= i; j++) {

                if (count == 1) {
                    for (int x = 25; x < 200; x += 50) {
                        Circle c = new Circle();
                        c.setRadius(20);
                        c.setCenterX(x);
                        c.setCenterY(25);
                        c.setFill(Color.web("#626D71"));
                        c.setCursor(Cursor.MOVE);
                        c.setOnMouseDragged(e -> {
                            c.setCenterX(e.getSceneX());
                            c.setCenterY(e.getSceneY());
                        });
                        player1.getChildren().add(c);
                    }
                }

                if (count == 2) {
                    for (int x = 25; x < 150; x += 50) {
                        Circle c = new Circle();
                        c.setRadius(20);
                        c.setCenterX(x);
                        c.setCenterY(75);
                        c.setFill(Color.web("#626D71"));
                        c.setCursor(Cursor.MOVE);
                        c.setOnMouseDragged(e -> {
                            c.setCenterX(e.getSceneX());
                            c.setCenterY(e.getSceneY());
                        });
                        player1.getChildren().add(c);
                    }
                }

                if (count == 3) {
                    for (int x = 25; x < 100; x += 50) {
                        Circle c = new Circle();
                        c.setRadius(20);
                        c.setCenterX(x);
                        c.setCenterY(125);
                        c.setFill(Color.web("#626D71"));
                        c.setCursor(Cursor.MOVE);
                        c.setOnMouseDragged(e -> {
                            c.setCenterX(e.getSceneX());
                            c.setCenterY(e.getSceneY());
                        });
                        player1.getChildren().add(c);
                    }
                }

                if (count == 4) {
                    Circle c = new Circle();
                    c.setRadius(20);
                    c.setCenterX(25);
                    c.setCenterY(175);
                    c.setFill(Color.web("#626D71"));
                    c.setCursor(Cursor.MOVE);
                    c.setOnMouseDragged(e -> {
                        c.setCenterX(e.getSceneX());
                        c.setCenterY(e.getSceneY());
                    });
                    player1.getChildren().add(c);
                }
            }
            count ++;
        }
    } while (count < 5);
}
}
封装测试;
导入javafx.application.*;
导入javafx.scene.Cursor;
导入javafx.scene.scene;
导入javafx.scene.layout.Pane;
导入javafx.scene.layout.StackPane;
导入javafx.scene.layout.TilePane;
导入javafx.scene.paint.Color;
导入javafx.scene.shape.Circle;
导入javafx.scene.shape.Rectangle;
导入javafx.stage.stage;
公营班级委员会扩展申请{
Pane player1=新窗格();
Pane player2=新窗格();
TilePane tp=新的TilePane();
最终整块瓷砖尺寸=50;
int[][]逻辑={{1,1,1,0,0,0,0,0,
1, 1, 1, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2,
0, 0, 0, 0, 0, 0, 2, 2,
0, 0, 0, 0, 0, 2, 2, 2,
0, 0, 0, 0, 2, 2, 2, 2}};
公共静态void main(字符串[]args){
发射();
}
公共空间启动(阶段ps){
StackPane sp=新的StackPane();
setTile();
setplayer1片段();
setPlayer2Pieces();
sp.getChildren().addAll(tp、player1、player2);
场景s=新场景(sp,390,390);
私人秘书长(s);
ps.setTitle(“PP2 Halma项目”);
ps.setresizeable(假);
ps.show();
}
公共void setTile(){
最终整数大小=8;
对于(int k=0;k=1;i--){
对于(int j=1;j{
c、 setCenterX(e.getSceneX());
c、 setCenterY(e.getSceneY());
});
player2.getChildren().add(c);
}
如果(计数=3){
对于(整数x=375;x>275;x-=50){
圆c=新的圆();
c、 设置半径(20);
c、 setCenterX(x);
c、 塞森特里(275);
c、 setFill(Color.web(#B7B8B6”);
c、 SetOnMouseDrawed(e->{
c、 setCenterX(e.getSceneX());
c、 setCenterY(e.getSceneY());
});
player2.getChildren().add(c);
}
}
如果(计数=2){
对于(整数x=375;x>225;x-=50){
圆c=新的圆();
c、 设置半径(20);
c、 setCenterX(x);
c、 setCenterY(325);
c、 setFill(Color.web(#B7B8B6”);
c、 SetOnMouseDrawed(e->{
c、 setCenterX(e.getSceneX());
c、 setCenterY(e.getSceneY());
});
player2.getChildren().add(c);
}
}
如果(计数=1){
对于(整数x=375;x>175;x-=50){
圆c=新的圆();
c、 设置半径(20);
c、 setCenterX(x);
c、 setCenterY(375);
c、 setFill(Color.web(#B7B8B6”);
c、 SetOnMouseDrawed(e->{
c、 setCenterX(e.getSceneX());
c、 setCenterY(e.getSceneY());
});
player2.getChildren().add(c);
}
}
计数--;
}   
}
}而(计数>0);
}
public void setPlayer1Pieces(){
整数计数=1;
做{
对于(int i=4;i>=1;i--){
对于(int j=1;j{
c、 setCenterX(e.getSceneX());
c、 setCenterY(e.getSceneY());
});
player1.getChildren().add(c);
}
}
如果(计数=2){
对于(int x=25;x<150;x+=50){
圆c=新的圆();