Show Map and pieces shape in gameui

This commit is contained in:
Debucquoy Anthony 2023-04-29 19:01:31 +02:00 committed by Anthony Debucquoy
parent 53972cd1ef
commit c68e680768
Signed by: tonitch
GPG Key ID: A78D6421F083D42E
2 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,29 @@
package school_project;
import javafx.geometry.Pos;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import school_project.Utils.MatrixShape;
public class GameUI extends BorderPane {
public final static int SEGMENT_SIZE = 50;
public GameUI(Map level) {
super();
MatrixShape grid = new MatrixShape(level);
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);
_piece.setColor(Color.RED); // TODO: Change with piece color
pieces.getChildren().add(_piece);
}
setCenter(grid);
setBottom(pieces);
}
}

View File

@ -0,0 +1,37 @@
package school_project.Utils;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.shape.Rectangle;
import school_project.GameUI;
import school_project.Shape;
import java.util.ArrayList;
public class MatrixShape extends GridPane {
public MatrixShape(){
super();
}
public MatrixShape(Shape shape){
super();
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);
add(_cell, j, i);
}
}
}
}
public void setColor(Paint p) {
getChildren().forEach(node -> {
if(node instanceof Rectangle r){
r.setFill(p);
r.setStroke(Color.BLACK);
}
});
}
}