From 15e1745ad1ef97ee63881e8ed78e87e76f7530e1 Mon Sep 17 00:00:00 2001 From: Anthony Debucquoy Date: Wed, 3 May 2023 11:11:16 +0200 Subject: [PATCH] Adding Gap and texture --- app/src/main/java/school_project/GameUI.java | 10 +++++++--- .../java/school_project/Utils/MatrixShape.java | 16 +++++++++++----- app/src/main/resources/school_project/tile.png | Bin 0 -> 3894 bytes 3 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 app/src/main/resources/school_project/tile.png diff --git a/app/src/main/java/school_project/GameUI.java b/app/src/main/java/school_project/GameUI.java index d15a53b..04f911f 100644 --- a/app/src/main/java/school_project/GameUI.java +++ b/app/src/main/java/school_project/GameUI.java @@ -1,24 +1,28 @@ package school_project; +import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.paint.Color; import school_project.Utils.MatrixShape; +import java.io.FileNotFoundException; + public class GameUI extends BorderPane { public final static int SEGMENT_SIZE = 50; - public GameUI(Map level) { + public final static int SPACE_SIZE = 5; + public GameUI(Map level) throws FileNotFoundException { super(); - MatrixShape grid = new MatrixShape(level); + MatrixShape grid = new MatrixShape(level, true); grid.setAlignment(Pos.CENTER); grid.setColor(Color.WHITE); HBox pieces = new HBox(); pieces.setSpacing(10); for (Piece p : level.getPieces()) { - MatrixShape _piece = new MatrixShape(p); + MatrixShape _piece = new MatrixShape(p, false); _piece.setColor(p.getColor()); pieces.getChildren().add(_piece); } diff --git a/app/src/main/java/school_project/Utils/MatrixShape.java b/app/src/main/java/school_project/Utils/MatrixShape.java index 8574295..1db303a 100644 --- a/app/src/main/java/school_project/Utils/MatrixShape.java +++ b/app/src/main/java/school_project/Utils/MatrixShape.java @@ -1,25 +1,31 @@ package school_project.Utils; +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; import javafx.scene.paint.Paint; import javafx.scene.shape.Rectangle; +import org.checkerframework.common.reflection.qual.GetClass; +import school_project.Controller; import school_project.GameUI; import school_project.Shape; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.util.ArrayList; public class MatrixShape extends GridPane { - public MatrixShape(){ - super(); - } - public MatrixShape(Shape shape){ + public MatrixShape(Shape shape, boolean texture) throws FileNotFoundException { super(); + setHgap(GameUI.SPACE_SIZE); + setVgap(GameUI.SPACE_SIZE); boolean[][] shape_matrix = shape.getShape(); for (int i = 0; i < shape_matrix.length; i++) { for (int j = 0; j < shape_matrix[i].length; j++) { if(shape_matrix[i][j]){ - Rectangle _cell = new Rectangle(GameUI.SEGMENT_SIZE, GameUI.SEGMENT_SIZE); + Node _cell = texture ? new ImageView(new Image(new FileInputStream(Controller.class.getResource("tile.png").getFile()))) : new Rectangle(GameUI.SEGMENT_SIZE, GameUI.SEGMENT_SIZE); add(_cell, j, i); } } diff --git a/app/src/main/resources/school_project/tile.png b/app/src/main/resources/school_project/tile.png new file mode 100644 index 0000000000000000000000000000000000000000..98e7c6e14906aa68290f5643571a61a830614a7d GIT binary patch literal 3894 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 literal 0 HcmV?d00001