Skocz do zawartości

Radar


Rekomendowane odpowiedzi

Witam mam radar stąd:

https://gmclan.org/index.php?plik=168

 

GML

 

x=view_xview[0]+radar.x;

y=view_yview[0]+radar.y; //te dwie instrukcje umiejscawiają radar w dolnym, lewym rogu viewa 0

draw_sprite(radar_s,0,x,y); //rysujemy sprite radaru

with(radar_obiect) //to pooduje że poniższe instrukcje wykonają się dla wszystkich obiektów z ustawionym parentem na radar_obiekt

{

dis=point_distance(ludzik.x,ludzik.y,x,y); //sprawdzamy odległość obiektu od gracza

if(dis<radar.r*radar.skala) //jeśli obiekt jest odpowiednio blidko...

{

dis_radar=dis/radar.skala; //ta zmienna będzie przechowywała odległość obiektu na radarze od środka radaru

dir=point_direction(ludzik.x,ludzik.y,x,y); //kierunek od gracza do obiektu

xx=lengthdir_x(dis_radar,dir);

yy=lengthdir_y(dis_radar,dir); //te dwie instrukcje mając daną odległość i kierunek wyznaczają pozycję obiektu na radarze

draw_sprite(radar_sprite,0,radar.x+xx,radar.y+yy); //rysujemy obiekt na radarze

}

}

 

Ten kodzik znajduje sie w evencie draw obiektu radar, teraz tylko jak go ukwadratnic :s? Znaczy sie, jak zrobic, zeby wyswietlal obiekty znajdujace sie w jego.. kwadracie nie kole <_< ?

Odnośnik do komentarza
Udostępnij na innych stronach

Zamiast sprawdzać odległość od gracza sprawdzaj czy znajduje się w określonym przedziale w pionie i w poziomie.

 

GML
w=800 //szerokość którą obejmuje radar

h=600 //wysokość którą obejmuje radar

if(x<ludzik.x+(w/2) && x> ludzik.x-(w/2) && y<ludzik.y+(h/2) && y> ludzik.y-(y/2))

...

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