LolikZabijaka Opublikowano 19 Grudnia 2008 Udostępnij Opublikowano 19 Grudnia 2008 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 Więcej opcji udostępniania...
Konrad-GM Opublikowano 20 Grudnia 2008 Udostępnij Opublikowano 20 Grudnia 2008 GML (Create) spadanie = 0; GML (EndStep) if( place_free( x, y+1 ) ) { spadanie += 1; } else { spadanie = 0; } GML (BeginStep) if( !place_free( x, y+1 ) && spadanie>200 ) { instance_destroy(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 20 Grudnia 2008 Udostępnij Opublikowano 20 Grudnia 2008 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 Więcej opcji udostępniania...
LolikZabijaka Opublikowano 20 Grudnia 2008 Autor Udostępnij Opublikowano 20 Grudnia 2008 dałem to w BeginStep : GML if( !place_free( x, y+1 ) && spadanie>200 ) { sprite_index=sprite15 } i to w end step : GML if( place_free( x, y+1 ) ) { spadanie += vspeed; } else { spadanie = 0; } i nie działa sprite index Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 21 Grudnia 2008 Udostępnij Opublikowano 21 Grudnia 2008 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 Więcej opcji udostępniania...
Jaklub Opublikowano 21 Grudnia 2008 Udostępnij Opublikowano 21 Grudnia 2008 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 Więcej opcji udostępniania...
Tymon Opublikowano 21 Grudnia 2008 Udostępnij Opublikowano 21 Grudnia 2008 To nie lepiej sprawdzić po prostu wartość vspeed? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 21 Grudnia 2008 Udostępnij Opublikowano 21 Grudnia 2008 Tymon: Czasami ograniczenia vspeeda mogą być małe i zwykły skok mógłby się skończyć śmiercią, a poza tym mierzenie pikseli jest precyzyjniejsze. ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 21 Grudnia 2008 Udostępnij Opublikowano 21 Grudnia 2008 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 minusieTak, 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 Więcej opcji udostępniania...
Jaklub Opublikowano 21 Grudnia 2008 Udostępnij Opublikowano 21 Grudnia 2008 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę