From f0e1f8a56b49c3980bd1258539181ef9ecc7c976 Mon Sep 17 00:00:00 2001 From: Anthony Debucquoy Date: Fri, 5 May 2023 00:15:38 +0200 Subject: [PATCH] Correct position on draging pieces --- app/src/main/java/school_project/GameUI.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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); }