Skocz do zawartości

MiniMapa - problem z rysowaniem pozycji gracza


Rekomendowane odpowiedzi

Witam,

 

Zrobiłem sobie taką oto minimapę:

http://www.gmclan.org/up8765_12_minimap.html

 

Wyświetlany jest fragment sprite'a odpowiadajacy głównemu view powiększony o odpowiednie offsety( _ol i _ot ). Mam problem z rysowaniem pozycji gracza w określonym przedziale. Kiedy pozycja view z offsetami jest większa od 0 działa OK: miniatura gracza jest w centrum minimapy i przesuwa się razem z nią. Problem jest kiedy minimapa dojdzie do brzegu rooma, wtedy ona się zatrzymuje i to jest OK, ale pozycja gracza też się zatrzymuje aż do momentu kiedy dojdzie bardzo blisko brzegu (wtedy zaczyna działać ten warunek który tam wykminiłem na dole), a powinien on się dalej poruszać (tak jak i właściwy obiekt gracza). Zatrzymać w danej osi powinien się tylko wtedy kiedy minimapa zaczyna się po tej osi przesuwać.

 

Żeby zobaczyć o co mi chodzi wystarczy przesuwać obiekt gracza cały czas np, w dół (LPM) i obserwować jego miniaturę na minimapie.

 

Powinno to działać dokładnie tak samo jak działa view w roomie, podążający za obiektem, z tą różnicą że minimapa jest poszerzona o te offsety.

 

Będę wdzięczny jeśli ktoś w to zajrzy i pomoże naprawić :)

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

troche mi trwalo zanim ogarnolem wszystike zmienne i ogole.

 

twoj problem jest v ignoraci roznych rozmiarow sprite i pomiaru dlugosci stron A i B

ten script akceptuje inne rozmiary:

GML
//SCRIPT DrawMinimap()

_sca=sprite_get_width(sprite0) /room_width;

_scb=sprite_get_height(sprite0)/room_height;

_scale=2

_scv_x=(view_xview[0])*_sca;

_scv_y=(view_yview[0])*_scb;

_scv_w = view_wview[0]*_sca;

_scv_h = view_hview[0]*_scb;

 

_mx = oUI.x+800-250+2;

_my = oUI.y+61;

 

draw_set_color(c_red);

draw_sprite_part_ext( sprite0,0, _scv_x, _scv_y, _scv_w, _scv_h, _mx, _my,_scale,_scale,c_yellow,.8);

 

_px=(( oP.x*_sca)-_scv_x)*_scale;

_py=(( oP.y*_scb)-_scv_y)*_scale;

 

draw_set_color(c_red);

draw_rectangle( _mx+_px-1,_my+_py-1,_mx+_px+1,_my+_py+1,0 );

jak bedzie trza, to dam popatrzec na gmk :)

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