Skocz do zawartości
carollo

View_angle w pltformówce i grawitacja

Rekomendowane odpowiedzi

Witam

Otóż chcę zrobić view_angle w grze platformowej (pamietam, że był taki przykład, ale w widoku z góry).

I tak, żeby grawitacja była zawsze w dół obracanego viewa. Np. grawitacja jest w dół, a po obrocie viewa grawitacja nadal jest w dół (tylko, że w dół viewa)

Mam nadzieję, że mnie zrozumieliście.

 

Ja napisałem już taki jeden kod, lecz na początku nie działał view_angle, później po obrocie albo grawitacja była nadal w tą samą stronę, albo postać się zacinała. :crying: Niestety kod był taki do ..., że go wywaliłem. Nawet poprawienie go nic by nie zdziałało (muszę napisać wszystko od początku) :sp_ike:

 

Z góry dzięki :thumbsup:

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Zacznijmy od tego że robić taką fizykę na GM'owej grawitacji to szaleństwo :P

Napisz se własną, bo nawet, jak bohaterem będzie kulka, to i tak obiekt będzie się dziwnie zachowywał...

 

Kąt viewa pobierasz przez view_angle, grawitacja to będzie

GML
gravity_direction = view_angle[view_current]+90; //Lub -90, z rana nie chce mi się myśleć...;P

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

W takim wypadku jestem szaleńcem. :)

 

Ogólnie jeśli chodzi o coś takiego to dochodzi sporo kodu z ruchem po nieregularnym podłożu. Więc, albo się ograniczasz do kątów prostych, albo kombinuj chłopcze. =)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

chodzi mi o kąty proste... (zapomniałem napisać :rolleyes: )

 

wtedy robiłem chyba coś w takim stylu:

GML
if keyboard_check(ord('A'))

{

view_angle += 90;

gravity_direction -= 90;

}

 

To był kod na obracanie viewem, i jeszcze coś takiego:

GML
if gravity_direction = -90 {gravity_direction = 270}

else if gravity_direction = 360 {gravity_direction = 0}

 

aby po pewnym czasie gravity_direction nie wynosiło 450 :jezor:

 

niestety nie działa(ło) //usunąłem ten kod przecież

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Dla uproszczenia dodam:

GML
gravity_direction = ( gravity_direction + 360 ) mod 360;
a GM i tak chyba wszystko trzyma w 360 stopniach.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×