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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