Skocz do zawartości

opóźniona kamera


Cannon Fodder

Rekomendowane odpowiedzi

W związku z tym że nie udało mi się odnaleźć podobnego tematu rozwiązujący mój problem, rozpoczynam nowy.

Tworzę gierkę typu wyścigi z widokiem od góry. Nie umiem poradzić sobie z ustawieniem kamery w ten sposób, aby z opóźnieniem podążała za pojazdem. Chodzi mi dokładnie o to, aby kamera była zawsze z tyłu, ale tak szybko nie obracała się jak auto. Oto co udało mi się stworzyć do tej pory:
. W moim przykładzie kamera podąża za pojazdem, ale dzieje się to za szybko.

Odnośnik do komentarza
Udostępnij na innych stronach

Stwórz obiekt "kamera", i wstaw do step'a ten kod:

GML
kierunek = point_direction(x,y,pojazd.x,pojazd.y);

dystans = point_distance(x,y,pojazd.x,pojazd.y)

x += lengthdir_x( dystans/13 , kierunek );

y += lengthdir_y( dystans/13 , kierunek );

Na koniec ustaw w roomie aby view podążał za tym obiektem. Powinno ładnie chodzić.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Napisałem taki kod:

 

GML
d3d_transform_set_identity();

d3d_transform_set_rotation_z(-view_angle);

d3d_transform_add_translation(view_xview[0]+view_wview[0]/2,view_yview[0]+view_hview[0]/2,0);

 

draw_text(-view_wview[0]/2,-view_hview[0]/2,"twoj text") // tekst pisany na pozycji 0/0

// tu rysujemy to co ma byc nie obkręcone

d3d_transform_set_identity();

 

rysuj wszystko co ma być nie przekręcone a za pozycje 0 stosuj "-view_wview[0]/2" dla osi x i "-view_hview[0]/2" dla osi y

 

lenin - 1,666 postów ;p

Odnośnik do komentarza
Udostępnij na innych stronach

Napisałem taki kod:

 

GMLd3d_transform_set_identity();

d3d_transform_set_rotation_z(-view_angle);

d3d_transform_add_translation(view_xview[0]+view_wview[0]/2,view_yview[0]+view_hview[0]/2,0);

 

draw_text(-view_wview[0]/2,-view_hview[0]/2,"twoj text") // tekst pisany na pozycji 0/0

// tu rysujemy to co ma byc nie obkręcone

d3d_transform_set_identity();

 

rysuj wszystko co ma być nie przekręcone a za pozycje 0 stosuj "-view_wview[0]/2" dla osi x i "-view_hview[0]/2" dla osi y

 

lenin - 1,666 postów ;p

 

Działa doskonale !! Dziękuję :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

obiekt z HUDem powinien miec najmniejszy depth ze wszystkich obiektow w roomie. standardowo mozesz dac depth=-1000000

Odnośnik do komentarza
Udostępnij na innych stronach

to nic nie da lenin, bo depth brany jest pod uwagę przed wywołaniem eventu Draw, nie w trakcie, bo na jego podstawie jest sortowana lista wyświetlania obiektów :>

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