Я пытаюсь создать тетрис. Я создал GridPane и заполнил ширину и высоту метками, используя вложенность для l oop, затем поместил GridPane в сцену. Как я могу изменить определенный фон метки, все метки имеют координаты. Я хочу изменить фон метки, потому что тогда я могу сделать разные тетромино для игры. Может быть, есть лучшие подходы к изготовлению тетромино в тетрисе, которых я не знаю. Мой код.
public class Menu extends Application {
private GridPane Grid = new GridPane(); //Layout
private Label label = new Label(); // Label
private int height = 600; private int width = 600; private int pixel = 30;
@Override
public void start(Stage Stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
Stage.setTitle("Tetris");
Grid.setGridLinesVisible(true);
Scene scene = new Scene(Grid, width, height); // Add Layout to scene
FillingLayoutWithLabels(width,height);
Stage.setScene(scene);
Stage.show();
}
private void FillingLayoutWithLabels(int width, int height) {
for(int i = 0;i< width/pixel ;i++){
for(int j = 0;j<height/pixel ; j++){
addLabel(i,j);
}
}
}
public void addLabel(int columnIndex, int rowIndex) {
Label label = new Label();
label.setMinWidth(pixel);
label.setMinHeight(pixel);
label.setBackground(new Background(new BackgroundFill(Color.RED, CornerRadii.EMPTY, Insets.EMPTY)));
label.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, null, new BorderWidths(1))));
Grid.setColumnIndex(label, columnIndex);
Grid.setRowIndex(label, rowIndex);
label.setId(rowIndex+ " " + columnIndex);
Grid.getChildren().add(label);
}
}