Fervi_ Opublikowano 26 Czerwca 2014 Udostępnij Opublikowano 26 Czerwca 2014 Witajcie! Prawdopodobnie zły dział, ale :P Szukam prostego i typowo platformówkowego Wall Jumpa, a'la Super Meat Boy :P Testowałem parę walljumpów z neta, ale dość dziwne są (takie nienaturalne jak na gry platformowe), a przykładu Pietera enigma nie rusza (sam LGM się kraszuje :P) Jak ktoś ma taki przykład typowo-typowy, niech wrzuci :) ew. jakieś swoje teorie jak to napisać Z góry dziękuję Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
orzechyarachidowe Opublikowano 28 Czerwca 2014 Udostępnij Opublikowano 28 Czerwca 2014 Nie możesz sobie sam napisać ? ;S Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 28 Czerwca 2014 Autor Udostępnij Opublikowano 28 Czerwca 2014 xD xD xD xD xD xD xD xD xD xD xD xD xD xD xD Jak mi powiesz jak powinien wyglądać Walljump (nie double jump przy ścianie) - to napiszę Ale nie mam pomysłu, idei - jak ma wyglądać taki znany z gier Walljump Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piotrek1910 Opublikowano 28 Czerwca 2014 Udostępnij Opublikowano 28 Czerwca 2014 Najciemniej pod latarnią. https://forum.gmclan.org/index.php?showtopic=30350 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 28 Czerwca 2014 Udostępnij Opublikowano 28 Czerwca 2014 Przecież walljump od zwykłego skoku różni się tylko tym że odbijasz się od ściany zamiast podłogi. :o Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 28 Czerwca 2014 Autor Udostępnij Opublikowano 28 Czerwca 2014 Przecież walljump od zwykłego skoku różni się tylko tym że odbijasz się od ściany zamiast podłogi. :o Niby tak, chociaż chyba w zależności od siły "wbicia" następuje siła "odbicia" i chyba nie jest ona stała. Chyba, że się mylę, nie wiem czy ktoś ogarniał te siły fizyki w grach :P @Piotrek Widziałem ten przykład, ale nie działa pod enigmą (podejrzewam uszkodzenie, bo plik GM8.1 ma tylko 6 kilobajtów [podczas gdy czysty plik gm81 stworzony w enigma ma 43] Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 28 Czerwca 2014 Udostępnij Opublikowano 28 Czerwca 2014 Pogoogluj jak to zrobił Tommy Refenes w Super Meat Boyu. ;) Jest na ten temat cała historia. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 28 Czerwca 2014 Udostępnij Opublikowano 28 Czerwca 2014 @Piotrek Widziałem ten przykład, ale nie działa pod enigmą (podejrzewam uszkodzenie, bo plik GM8.1 ma tylko 6 kilobajtów [podczas gdy czysty plik gm81 stworzony w enigma ma 43] przykład działa doskonale, a oto jego treść GML (create gracza) hsp = 0; // horizontal speed vsp = 0; // vertical speed grounded = 0; // is on ground sliding = 0; maxSlidingSpeed = 3; slidingJumpSpeed = 8; vgrav = 1; // verticalgravity hgrav = 0.5; // horizontal gravity fric = 1; // on ground friction counterFricMultiplier = 3; // friction when oposit buttons are pressed maxHorSpeed = 12; // max horizontal speed jumpSpeed = 12; // jump speed (higher you set it, higher the player goes)</span></span></span></span></span> GML (step gracza) left_button = keyboard_check(ord('A')); right_button = keyboard_check(ord('D')); up_button = keyboard_check(vk_space); vsp += vgrav; if ( sliding == 1 ) { if ( vsp > maxSlidingSpeed ) { vsp = maxSlidingSpeed; } } if ( left_button ) { if ( hsp > 0 ) { hsp -= hgrav * counterFricMultiplier; } else { hsp -= hgrav; } if ( hsp < -maxHorSpeed ) hsp = -maxHorSpeed; } if ( right_button ) { if ( hsp < 0 ) { hsp += hgrav * counterFricMultiplier; } else { hsp += hgrav; } if ( hsp > maxHorSpeed ) hsp = maxHorSpeed; } if ( up_button ) { if ( grounded == 1 ) vsp = -jumpSpeed; if ( sliding == 1 ) { if ( place_meeting(x+1, y, obj_block) ) { hsp -= slidingJumpSpeed; } if ( place_meeting(x-1, y, obj_block) ) { hsp += slidingJumpSpeed; } } } if ( !right_button && !left_button ) { if ( grounded == 1 ) { if ( hsp < 0 ) { if ( hsp < fric ) { hsp += fric; } else { hsp = 0; } } if ( hsp > 0 ) { if ( hsp > fric ) { hsp -= fric; } else { hsp = 0; } } } } // vertical collision if ( place_meeting(x, y+vsp, obj_block) ) { if ( vsp < 0 ) { while ( !place_meeting(x, y-1, obj_block ) ) y -= 1; vsp = 0; grounded = 0; } else { while ( !place_meeting(x, y+1, obj_block ) ) y += 1; vsp = 0; grounded = 1; } } else { grounded = 0; } // horizontal collision if ( place_meeting(x+hsp, y, obj_block) ) { while ( !place_meeting(x+sign(hsp), y, obj_block) ) x += sign( hsp ); hsp = 0; } // sliding if ( place_meeting(x+1, y, obj_block) || place_meeting(x-1, y, obj_block) ) { sliding = 1; grounded = 1; } else { sliding = 0; } x += hsp; y += vsp; zrób sobie 2 obiekty i sprawdź Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 28 Czerwca 2014 Autor Udostępnij Opublikowano 28 Czerwca 2014 Dzięki Jaklub Ten przykład pietera jest genialny :P Fervi PS. Temat do zamknięcia 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ę