Moho Opublikowano 12 Grudnia 2012 Udostępnij Opublikowano 12 Grudnia 2012 Hej hi raz jeszcze, Poddaje się bo chyba za chwilę mnie szlag trafi, sprawa wygląda tak jak na obrazku poniżej: Jest player, jest ściana, podłoga. Wszystko gra do momentu kiedy podchodzę playerem pod ścianę, podskakuję wtulony w nią i teraz gdy wcisnę (tak jak w przypadku obrazka) klawisz "idź w prawo" to player utyka na ścianie do momentu gdy puszczę "idź w prawo". Tzn wisi w powietrzu w miejscu gdzie wcisnąłem klawisz. Kod jest najprostszym z możliwych: Step playera: GML if keyboard_check(vk_right) { if place_free(+5,0) { x=x+5 y=y+0 sprite_index=sprright } } else if keyboard_check(vk_left) { if place_free(-5,0) { x=x-5 y=y+0 sprite_index=sprleft } } if keyboard_check(vk_up) { jump=1; { if not place_free(x+0,y+1) vspeed=-10 } } else if keyboard_check_released(vk_up) { if ( jump ) vspeed = 0; } if vspeed>=0 jump=0; Kolizja ze ścianami/podłożem: GML vspeed=0; help. EDIT: Grawitacja ustawiona. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 12 Grudnia 2012 Udostępnij Opublikowano 12 Grudnia 2012 move_towards_solid() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piedro Opublikowano 12 Grudnia 2012 Udostępnij Opublikowano 12 Grudnia 2012 GML if keyboard_check(vk_right) { if place_free(x+5,y) { x+=5 sprite_index=sprright } } else if keyboard_check(vk_left) { if place_free(x-5,y) { x-=5 sprite_index=sprleft } } if keyboard_check(vk_up) { jump=1; { if not place_free(x+0,y+1) vspeed=-10 } } else if keyboard_check_released(vk_up) { if ( jump ) vspeed = 0; } if vspeed>=0 jump=0; [edit[ Mała poprawka :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moho Opublikowano 12 Grudnia 2012 Autor Udostępnij Opublikowano 12 Grudnia 2012 GML if keyboard_check(vk_right) { if place_free(x+5,y) { x+=5 sprite_index=sprright } } else if keyboard_check(vk_left) { if place_free(x-5,y) { x-=5 sprite_index=sprleft } } if keyboard_check(vk_up) { jump=1; { if not place_free(x+0,y+1) vspeed=-10 } } else if keyboard_check_released(vk_up) { if ( jump ) vspeed = 0; } if vspeed>=0 jump=0; [edit[ Mała poprawka :) Dzięki piękne panie. 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ę