Niebieska linia to tylko taki wskaźnik pokazujący następny punkt do którego kulka ma zamiar się dostać. Faktycznie trochę mało to testowałem i kulka się może zatrzymać wtedy kiedy zbyt wcześnie zauważy gracza :/
Wina leży tutaj:
GML
// ruch do celu
if ( celX > x ) if ( place_free( x + predkosc, y ) ) x += predkosc;
if ( celX < x ) if ( place_free( x - predkosc, y ) ) x -= predkosc;
if ( celY > y ) if ( place_free( x, y + predkosc ) ) y += predkosc;
if ( celY < y ) if ( place_free( x, y - predkosc ) ) y -= predkosc;
Kiedy kulka zauważy gracza to automatycznie ignoruje podążanie za tą szarą krzywą ( path ). Wtedy wykonuje powyższy kod gdzie celX i celY to x i y gracza. Przez to nie widzi już ścian tylko mknie po prostej linii do celu.
Należało by użyć funkcji mp_potential_step() zamiast tamtego powyższego. Wtedy nie będzie bezmyślnie lecieć po prostej tylko zacznie dodatkowo widzieć ściany które są obok kulki.