Game UI #38

Merged
Mat_02 merged 10 commits from gameui into master 2023-05-09 12:51:19 +02:00
2 changed files with 66 additions and 0 deletions
Showing only changes of commit c68e680768 - Show all commits

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);
}
});
}
}