Show Map and pieces shape in gameui
This commit is contained in:
		
							
								
								
									
										29
									
								
								app/src/main/java/school_project/GameUI.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								app/src/main/java/school_project/GameUI.java
									
									
									
									
									
										Normal 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);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								app/src/main/java/school_project/Utils/MatrixShape.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								app/src/main/java/school_project/Utils/MatrixShape.java
									
									
									
									
									
										Normal 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);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user