Skocz do zawartości

patrolowanie terenu


dyzmek

Rekomendowane odpowiedzi

witam otóż zrobiłem wrogowi że jak mnie zobaczy to mnie goni i strzela . ale jak mnie nie goni to stoi caly czas w miejscu.

 

Bawiłem się różnymi kodami by sobie pełzał itd , nawet way pointy robiłem i nic , dalej stoi jak słup , proszę o pomoc jaki kod mu dodać aktualnie u wroga mam takie kody :

 

CREATE :

 

// pokazywanie linii

linie=false

// okresla czy enemi sie komunikuja miedzy soba

com=false

// miejsce docelowe do ktorego idzie

px=x

py=y

 

// predkosc enemi

step=3

// odleglosc na jaka enemi podchodza do hero

dis=32

// promien naszego hero

hero_range=(obj_kapitan_zielony.sprite_width+obj_kapitan_zielony.sprite_height)/4

see=false

 

// to ponizej to po to by nie bylo bledu na starcie, czyli inicjacja potrzebnych zmiennych

temp_dir=point_direction(obj_kapitan_zielony.x,obj_kapitan_zielony.y,x,y)

temp_r=hero_range

temp_x1=lengthdir_x(temp_r,temp_dir+90)

temp_y1=lengthdir_y(temp_r,temp_dir+90)

temp_x2=lengthdir_x(temp_r,temp_dir-90)

temp_y2=lengthdir_y(temp_r,temp_dir-90)

 

 

 

STEP :

 

 

see=false

 

// ustawienie skali scian tak by nie przepuszczala 'promieni'

temp_xs=obj_mor.image_xscale

temp_ys=obj_mor.image_yscale

obj_mor.image_xscale=temp_xs*1.05

obj_mor.image_yscale=temp_ys*1.05

 

// wykrycie punktow widzialnych

temp_dir=point_direction(obj_kapitan_zielony.x,obj_kapitan_zielony.y,x,y)

temp_r=hero_range

temp_x1=lengthdir_x(temp_r,temp_dir+90)

temp_y1=lengthdir_y(temp_r,temp_dir+90)

temp_x2=lengthdir_x(temp_r,temp_dir-90)

temp_y2=lengthdir_y(temp_r,temp_dir-90)

if!(collision_line(x,y,obj_kapitan_zielony.x,obj_kapitan_zielony.y,obj_mor,0,0)

)

{

if!(global.alert)global.alert=true

if!(see)see=true

}

if!(collision_line(x,y,obj_kapitan_zielony.x+temp_x1,obj_kapitan_zielony.y+temp

_y1,obj_mor,0,0))

{

if!(global.alert)global.alert=true

if!(see)see=true

}

if!(collision_line(x,y,obj_kapitan_zielony.x+temp_x2,obj_kapitan_zielony.y+temp

_y2,obj_mor,0,0))

{

if!(global.alert)global.alert=true

if!(see)see=true

}

 

// przywrocenie skali scian

obj_mor.image_xscale=temp_xs

obj_mor.image_yscale=temp_ys

 

 

// AI (skape, ale zawsze)

if(see)

{

px=obj_kapitan_zielony.x

py=obj_kapitan_zielony.y

if(com)

{

enemy.px=obj_kapitan_zielony.x

enemy.py=obj_kapitan_zielony.y

}

}

 

if(point_distance(x,y,px,py)>dis)

mp_potential_step(px,py,step,0)

 

 

 

 

W STEP W OSTATNIM WIERSZU JEST STEP 0 wiem ze to na pewno przez to wrog sie nie rusza , ale nie umiem tego zmienić

, chcę by jak wróg mnie nie widzi to sobie chodzi , można to nazwać patrolowaniem terenu. proszę o pomoc , będą Kreditsy.

 

no pomóżcie mi proszę.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

widocznie px i py jest źle ustawione... z tego co widzę to jak wróg cię nie widzi, idzie do ostatnio ustawionego px i py - to w create to pozycja na której startuje - natomiast jeśli cię zobaczył i przestaje widzieć, dojdzie tam gdzie cię ostatnio widział.

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ę...