44 lines
1.4 KiB
Java
Raw Normal View History

2023-04-29 19:01:31 +02:00
package school_project;
2023-05-03 11:11:16 +02:00
import javafx.geometry.Insets;
2023-04-29 19:01:31 +02:00
import javafx.geometry.Pos;
import javafx.scene.Group;
2023-05-03 18:21:54 +02:00
import javafx.scene.input.MouseButton;
2023-04-29 19:01:31 +02:00
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.stage.Screen;
2023-04-29 19:01:31 +02:00
import school_project.Utils.MatrixShape;
2023-05-03 11:11:16 +02:00
import java.io.FileNotFoundException;
public class GameUI extends Group{
2023-04-29 19:01:31 +02:00
public final static int SEGMENT_SIZE = 50;
2023-05-03 11:11:16 +02:00
public final static int SPACE_SIZE = 5;
public GameUI(Map level) throws FileNotFoundException {
2023-04-29 19:01:31 +02:00
super();
2023-05-03 18:21:54 +02:00
MatrixShape grid = new MatrixShape(level);
grid.setLayoutX(Screen.getPrimary().getBounds().getWidth()/2 - grid.boundary_size.x/2);
grid.setLayoutY(Screen.getPrimary().getBounds().getHeight()/2 - grid.boundary_size.y/2);
2023-04-29 19:01:31 +02:00
Group pieces = new Group();
2023-04-29 19:01:31 +02:00
for (Piece p : level.getPieces()) {
2023-05-03 18:21:54 +02:00
MatrixShape _piece = new MatrixShape(p);
_piece.setOnMouseClicked(event -> {
if(event.getButton() == MouseButton.SECONDARY){
((Piece) _piece.shape).RotateRight(1);
_piece.update();
}
});
_piece.setOnMouseDragged(event -> {
_piece.setLayoutX(event.getSceneX());
_piece.setLayoutY(event.getSceneY());
});
2023-04-29 19:01:31 +02:00
pieces.getChildren().add(_piece);
}
getChildren().addAll(grid, pieces);
2023-04-29 19:01:31 +02:00
}
}