Skocz do zawartości

Namierzanie najbliższego wroga


pivot18

Rekomendowane odpowiedzi

Witam.

 

Ostatnio robiąc skrypt dla wieżyczki zauważyłem że ma problemy z namierzaniem wroga.

Chodzi to to, że nie wiem co zrobić, aby nie namierzał wroga który akurat jest za ścianą.

 

Graficznie chodzi mi o to.

http://screenshooter.net/9914128/vaqadbl

X powinien namierzać Y ,ale Z jest niestety bliżej i dlatego jest namierzany.

 

Puki co używam instance_nearest()

 

Z góry dzięki.

 

 

Jeśli temat był to oznacza że nie potrafię szukać o.O

Odnośnik do komentarza
Udostępnij na innych stronach

Robisz sobie skrypta o nazwie np. instance_nearest_ext i wklejasz do niego to:

 

GML
//instance_nearest_ext(player,enemy,wall)

global._len = noone;

global._nearID = noone;

 

with(argument1)

{

dis = point_distance(x,y,argument0.x,argument0.y);

if (dis < global._len) || (global._len == noone)

{

if (!collision_line(x,y,argument0.x,argument0.y,argument2,1,0)) {global._len = dis; global._nearID = id;}

}

}

 

return global._nearID;

 

Użycie np.

 

GML
near = instance_nearest_ext(nazwa obj wiezy gracza albo cos, nazwa obj wroga,nazwa obj sciany)

 

if (near)

{

mp_potential_step(near.x,near.y,4,true);

}

 

Pewnie można zrobić to lepiej, ale tak na szybko :D

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...