diff --git a/app/src/main/java/school_project/GameUI.java b/app/src/main/java/school_project/GameUI.java index 9de6550..6b81899 100644 --- a/app/src/main/java/school_project/GameUI.java +++ b/app/src/main/java/school_project/GameUI.java @@ -9,6 +9,8 @@ import java.io.FileNotFoundException; public class GameUI extends Group{ public final static int SEGMENT_SIZE = 50; public final static int SPACE_SIZE = 5; + private final Vec2 piece_pos_click = new Vec2(); + public GameUI(Map level) throws FileNotFoundException { super(); @@ -22,16 +24,23 @@ public class GameUI extends Group{ for (Piece p : level.getPieces()) { MatrixShape _piece = new MatrixShape(p); + + // Pieces Events _piece.setOnMouseClicked(event -> { if(event.getButton() == MouseButton.SECONDARY){ ((Piece) _piece.shape).RotateRight(1); _piece.update(); } }); - _piece.setOnMouseDragged(event -> { - _piece.setLayoutX(event.getSceneX()); - _piece.setLayoutY(event.getSceneY()); + _piece.setOnMousePressed(event -> { + piece_pos_click.x = (int) event.getX(); + piece_pos_click.y = (int) event.getY(); }); + _piece.setOnMouseDragged(event -> { + _piece.setLayoutX(event.getSceneX() - piece_pos_click.x); + _piece.setLayoutY(event.getSceneY() - piece_pos_click.y); + }); + getChildren().add(_piece); }