Skocz do zawartości

chodzenie przeciwnika


kalis

Rekomendowane odpowiedzi

mam sobie zolnierzy 2

i chce im zrobic zeby chodzili sobie na patrole(uzywalem path ale sa nieefektywne - bo gdy moj player podejdzie do niego na odleglosc 60 on podaza za mna ale po zderzeniu np z murem obiekt staje, a ma go wyminac i isc dalej.. a)

i zeby jak bedzie np 30 pikseli od mojego playera zaczyna strzelac do mnie, a jak moj ucieknie to dalej wraca do patrolowania po okreslonym pathu

Odnośnik do komentarza
Udostępnij na innych stronach

create

punkt1[0] = 50 // wspolzedna x pierwszego punktu
punkt1[1] = 50// wspolzedna y pierwszego punktu

punkt2[0] = 100 // jak wyzej ale 2 punkt
punkt2[1] = 50 // y punktu 2

punkt3[0] = 75 // x 3 punktu
punkt3[1] = 100//y 3 punktu

sciezka=1 // wspolzedna mowiaca ze ma isc do 1 punktu
fire=true //moze strzelac

step

if distance_to_object(player) > 100 // jezeli player jest dalej niz 100 pixeli
{ 
switch (sciezka)
{
case 1: 
mp_potential_step(punkt1[0],punkt1[1],5,false);break //idz do punktu 1 z predkoscia 5 omijajac tylko obiekty solid i wyloncz switch
case 2:
mp_potential_step(punkt2[0],punkt2[1],5,false);break // idz do 2 punktu
case 3:
mp_potential_step(punkt3[0],punkt3[1],5,false);break // idz do 3 punktu
}}
else // a jezli player jest blizej niz 100 pixeli
{
if distance_to object(player) < 50 //jezli player jest blizej niz 50 pixeli 
{
direction=point_direction(x,y,player.x,player.y) //odwroc sie w strone playera
speed=0 //zatrzymaj sie
if fire=true //jezeli moze strzelac
 {
 fire=false //juz strzelil
 instance_create(x,y,naboj) // stworz naboj
 alarm[0]=30 // alarm 0 ustaw na 30 stepow zeby po tym czasie mogl znowu strzelic
 }
}
else // jezeli player jest dalej niz 50 pixeli
{
mp_potential_step(player.x,player.y,5,false) //idz do playera omijajac przeszkody
}
}

if point_distance(x,y,punkt1[0],punkt1[1]) <1 && sciezka=1 // jezeli jest kolo punktu 1 i ma tam isc
{sciezka=2}
if point_distance(x,y,punkt2[0],punkt2[1]) <1 && sciezka=2 // jezeli jest kolo punktu 2 i ma tam isc
{sciezka=3}
if point_distance(x,y,punkt3[0],punkt3[1]) <1 && sciezka=3 // jezeli jest kolo punktu 3 i ma tam isc
{sciezka=1}

image_angle=direction //obroc sprita w strone kierunku

alarm 0

fire=true //moze strzelac

w create naboju

direction=point_direction(x,y,player.x,player.y) //obroc sie w strone playera
speed=5

step naboju

image_angle=direction //obroc sprita w kierunku kierunku

 

to powinno dzialac, niesprawdzalem wszystko pisalem z glowy moze tez jest jakis blond, i to jest nienajwydajniejszy sposob zrobienia czegos takiego mysle ze da sie to zrobic lepiej ale nie chce mi sie za bardzo teraz wysilac :D i mam nadzieje ze chodzilo ci o cos takiego a nei cos innego :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ę...