Поиск пути. Обход препятствий в Game Maker.
Создаём следующие объекты:
obj_player - игрок
obj_enemy - враг
obj_wall - стена
Игрок - цель к которой будет идти враг, обходя стены.
Коддинг:
Враг: Create:
Code
move = mp_grid_create(0,0,room_width/16,room_height/16,16,16);
mp_grid_add_instances(move,o_wall,0);
path = path_add();
Создаем сетку размером с всю комнату и записываем ее индекс для дальнейшего использования.
Добавляем объекты на сетку, которые враг будет обходить.
Создаем новый путь и записываем его индекс.
Там, где нужно запустить путь, пишем такие строки кода:
Code
mp_grid_path(move,path,x,y,точка.х,точка.y,0);
path_start(path, скорость, 0, 0);
Пролаживаем путь на сетке от точки 'x'-'y' (например текущие координаты) до целевой ('точка.х'-'точка.у');
параметр 0 отвечает за возможность ходьбы по диагонали, (0 - нельзя, 1 - можно).
Запускаем путь с определенной скоростью.