Я пишу настольную игру с сеткой 20x20.JavaFX прямоугольник mouseonclick grid return
Это в моем классе платы:
private final Position[][] grid = new Position[GRID_SIZE][GRID_SIZE];
каждая позиция имеет:
public class Position {
private final Coordinates pos;
private Player player;
private final static double RECTANGLE_SIZE = 40.0;
private final Rectangle rect = new Rectangle(RECTANGLE_SIZE, RECTANGLE_SIZE);
}
так в основном я 20x20 позиций и каждая из позиций имеет прямоугольник
Это то, что я делаю для отображения сетки
for (int cols = 0; cols < GRID_SIZE; ++cols) {
for (int rows = 0; rows < GRID_SIZE; ++rows) {
grid.add(gameEngine.getBoard().getGrid()[cols][rows].getRect(), cols, rows);
}
}
В любом случае, сетка инициализируется и работает правильно. То, что я хочу сделать, - сделать объекты прямоугольника интерактивными и иметь возможность возвращать их координаты при нажатии.
Это, как я обрабатывать мыши
private void setUpRectangle() {
rect.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
rect.setFill(Color.BLACK);
}
});
}
Что делает этот код, чтобы изменить цвет прямоугольника до черного, но как я мог вернуть координаты. В принципе, я могу редактировать функцию onclick, чтобы возвращать координаты этой позиции, но как я могу их приобрести позже?
Что вы подразумеваете под координатами? Вы можете попробовать 'rect.getX()' и 'rect.getY()', если это то, что вы хотите. –
@Shashwat Каждая позиция имеет координаты (x, y) и объект прямоугольника. Я хочу знать, какой прямоугольник щелкнут, получая его координаты. Даже если я возвращу объект Coordinates прямоугольника, я не знаю, как его обрабатывать (дождаться их) –
Где находятся координаты? Если они находятся в классе 'Position', вы можете создать ** getter ** для них. Кроме того, откуда вы хотите получить доступ к координатам, классу 'Main' или классу' Position'? –