Możesz ewentualnie zrobić tak:
CREATE
GML
global.Grid = mp_grid_create(0,0,153,198,16,16); //twożymy nową siatkę
mp_grid_add_instances(global.Grid,Obstacle,true); //komórki zajęte przez obiekt Obstacle ustaw jako niedozwolone
GG_droga
GML
//WYSZUKANIE DROGI
if global.powrot = 1
{
TX = (global.spozycjax div 16*16)+8;
TY = (global.spozycjay div 16*16)+8;
}
else
{
TX = (global.Pozycjax div 16*16)+8;
TY = (global.Pozycjay div 16*16)+8;
}
//RESET
path_end(); //stop!
path_clear_points(Path); //czyścimy ścieżkę
with(Point)instance_destroy(); //czyścimy znaczniki
with(Goal)instance_destroy();
//WYSZUKIWANIE
global.Ready = mp_grid_path(global.Grid,Path,x,y,TX,TY,true); //wyszukaj ścieżkę i daj znać czy znalazłeś czy nie do zmiennej Ready
path_set_kind(Path,true); //ustaw gładkie krawędzie ścieżki
global.PathWidth = path_get_number(Path)-1;//zapamietaj długość ścieżki
if(global.Ready) //jeśli znalazł ścieżkę
{
instance_create(path_get_point_x(Path,global.PathWidth),path_get_point_y(Path,global.PathWidth),Goal); //pokaż znacznik punktu docelowego
//pokaż znaczniki ścieżki
for(i=0;i<global.PathWidth;i+=1)
instance_create(path_get_point_x(Path,i),path_get_point_y(Path,i),Point);
}
if global.Ready//jak sobie klikniesz i już znaleziono ścieżkę to...
{
path_start(Path,10,0,true); //jazda!
global.Ready = false;
}