Skocz do zawartości

Upadek z wysokości


Rekomendowane odpowiedzi

Witam, mam pytanie załóżmy że mamy zmienną "spadanie" domyślnie ustawioną na 0 i mam pytanie jak skonstruować kod, który bedzie odpowiadał za to, że jeśli postać przeleci w pionie 200 pikseli to spadanie ustawi się na 1 jak skonstruować ten kod ? będę wdzięczny :)

Odnośnik do komentarza
Udostępnij na innych stronach

Konrad-GM:

Jeśli obiekt płynnie spada, to lepiej w endstep:

GML
if( place_free( x, y+1 ) ) { spadanie += vspeed; } else { spadanie = 0; }
Bo inaczej może być tak, że spadnie na np. 500 pikseli i gra mu tego nie zaliczy (chyba).
Odnośnik do komentarza
Udostępnij na innych stronach

Jaklub - wtedy jeśli na przykład kracz podskoczy, to spełni się warunek place_free(x, y+1) i będą dodawane wartości ujemne - a tego na pewno nie chcemy... :)

 

GML
fall_height += max(0, vspeed);

if(!place_free(x, y+1)){ fall_height = 0; }

PS: I tak radzę napisać własne direction/hspeed/vspeed/speed, bo GM to strasznie wali przy ruchach platformowych...

 

Edit: A co to w ogóle znaczy "płynnie"...? ;P

Bo nie rozumiem, o co ci chodzi.

Odnośnik do komentarza
Udostępnij na innych stronach

Jaklub - wtedy jeśli na przykład kracz podskoczy, to spełni się warunek place_free(x, y+1) i będą dodawane wartości ujemne - a tego na pewno nie chcemy...

Kiedy obiekt podskoczy, to wtedy do licznika dodawany będzie minus, czyli licznik będzie na minusie (jak obiekt za wysoko skoczy, to się nie zabije), ale z drugiej strony można i tak.

if( !place_free( x, y+1 ) && spadanie>200 ) {

sprite_index=sprite15

}

Wytłumacz, do czego to ma służyć. Ten kod w tej postaci NIGDY nie będzie działać, ponieważ kiedy heros stoi na ziemi, spadanie jest na zerze. Myśl.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie można zostawiać vspeeda bez ograniczeń, bo wtedy jak się postać rozpędzi to będzie źle... ;P

 

Kiedy obiekt podskoczy, to wtedy do licznika dodawany będzie minus, czyli licznik będzie na minusie
Tak, ale po tym, jak już zacznie spadać, to minie trochę czasu zanim licznik będzie różny chociażby zero.

 

Ten kod w tej postaci NIGDY nie będzie działać, ponieważ kiedy heros stoi na ziemi, spadanie jest na zerze. Myśl.
To wstawiamy ten kod jeszcze przed ustawieniami licznikika... ;P
Odnośnik do komentarza
Udostępnij na innych stronach

Tak, ale po tym, jak już zacznie spadać, to minie trochę czasu zanim licznik będzie różny chociażby zero.

Ale licznik będzie równy zero na pozycji startowej skoku bohatera.

To wstawiamy ten kod jeszcze przed ustawieniami licznikika... ;P

Wstawił przed i nic.

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