Я пытаюсь создать стандартный решатель лабиринта мыши для класса, и у меня возникают проблемы с графической частью. Решить лабиринт легко, но графически обновлять мышь, когда он движется, сложно. Ниже приведена урезанная версия того, что у меня есть.
@Override
public void start(Stage primaryStage) throws IOException {
Maze maze = new Maze();
maze.loadMazeFromFile("maze_input.txt");
GridPane mazeGrid = maze.drawGrid();
mazeGrid.setAlignment(Pos.CENTER);
StackPane root = new StackPane();
root.getChildren().add(mazeGrid);
Scene scene = new Scene(root, (maze.rows()*10)+40, (maze.columns()*10)+130);
primaryStage.setTitle("Mad Mouse Maze");
primaryStage.setScene(scene);
primaryStage.show();
maze.solveMaze();
}
Открывается простое окно с моим лабиринтом, отображаемым в нем, и мышь может решить лабиринт, как видно на выходе консоли, и все это прекрасно работает. Что мне нужно сделать, и я не могу понять, как это сделать, это повторять mazeGrid = maze.drawGrid();
каждый раз, когда мышь перемещается в пределах maze.solveMaze();
, и перерисовывать GridPane, представляющий лабиринт. Как мне получить доступ к mazeGrid из лабиринта? Создаю ли я какое-то событие для сетки, чтобы отслеживать и запускать его, если да, то как? Получить доступ к элементам в окне чрезвычайно сложно в JavaFX, который говорит мне, что я делаю что-то не так. пожалуйста, помогите.