Skocz do zawartości

Animacja skakania i chodzenia


BanDa

Rekomendowane odpowiedzi

Siemka ;) . Mam bohatera, zrobiłem mu animację chodzenia

Event Left

GML
sprite_index=s_bohater_lewo

 

if place_free(x-5,y)

{x-=5}

Event Left Relassed

GML
sprite_index=lewo_s

 

I to samo z prawym tylko że inna animacja, inne współrzędne itp.

 

A teraz ustawiłem sobie że przy klawiszu

Event Up , mam

GML
sprite_index=s_up

{

if distance_to_object(o_ziemia) <8

sprite_index=0

}

if ! place_free(x,y+1)

{vspeed = -7}

 

 

I raz postać z animacją skakania jest na ziemi , nie kiedy biega w locie i nie umiem tego zrobić :/

 

Ps.

if distance_to_object(o_ziemia) <8 , to dałem bo myślałem że zadziała ale nic z tego...

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi mi o to, że jak jest w powietrzu , to jest sprite że ma rozłożone ręce, a jak jest na ziemi , to sprite jak stoi , a potem jak biegnie to animacja bieganie. A bohater mi nie kiedy biega w powietrzu , a nie kiedy sprite skoku jest na ziemi :/

Odnośnik do komentarza
Udostępnij na innych stronach

if keyboard_check_pressed(vk_left){

sprite_index=lewo

}else

if keyboard_check_pressed(vk_right){

sprite_index=prawo

}else

if keyboard_check_pressed(vk_up) and !place_free(x,y+1){

sprite_index=skocz

vspeed-=10

}

if !keyboard_check(vk_left) and !keyboard_check(vk_right) and !place_free(x,y+1)

sprite_index=stoj

 

if keyboard_check(vk_left) and !place_free(x,y+1) and place_free(x-4,y)

x-=4

if keyboard_check(vk_right) and !place_free(x,y+1) and place_free(x+4,y)

x+=4

Odnośnik do komentarza
Udostępnij na innych stronach

(Nie chcę zakładać nowego tematu, a doublepost by ktoś zauważył)

 

Wszystko pięknie ładnie ale dzieję się takie coś:

 

( Ten ostatni skok )

 

http://www.youtube.com/watch?v=gn8WQw0i7HM

 

 

W o_hero , w evencie step mam:

 

GML
if (!keyboard_check(vk_left) and !keyboard_check(vk_right))or(sprite_index=s_up

or sprite_index=s_up_l or sprite_index=s_up_p ) and !place_free(x,y+1) //zamiast s_up moze byc na skos w prawo

sprite_index=stoj

 

if place_free(x,y+1)

vspeed+=1

 

if (keyboard_check_pressed(vk_left))or(keyboard_check(vk_left)and (sprite_index=stoj or sprite_index=s_bohate_prawo))

and !place_free(x,y+1){

sprite_index=s_bohater_lewo

}else

if (keyboard_check_pressed(vk_right))or(keyboard_check(vk_right)and (sprite_index=stoj or sprite_index=s_bohater_lewo))

and !place_free(x,y+1){

sprite_index=s_bohate_prawo

}

if keyboard_check(vk_up) and !place_free(x,y+1){

vspeed-=10

if sprite_index=s_bohate_prawo{

hspeed=7

sprite_index=s_up_p // tu tez

}else

if sprite_index=s_bohater_lewo{

hspeed=-7

sprite_index=s_up_l // tu tez

}else

sprite_index=s_up

}

if keyboard_check(vk_left) and !keyboard_check(vk_right) and !place_free(x,y+1) and place_free(x-5,y)

x-=5

if keyboard_check(vk_right) and !keyboard_check(vk_left) and !place_free(x,y+1) and place_free(x+5,y)

x+=5

 

if keyboard_check(vk_left) and keyboard_check(vk_right) and !place_free(x,y+1)

sprite_index=stoj

 

A w o_ziemia w kolizji z bohaterem:

 

GML
with(other){

if vspeed>0{

move_contact_solid(270,vspeed)

speed=0

}

}

 

 

Co jest nie tak ?

Odnośnik do komentarza
Udostępnij na innych stronach

if keyboard_check(vk_up) and !place_free(x,y+1) and vspeed=0{

vspeed-=10

if sprite_index=s_bohate_prawo{

hspeed=7

sprite_index=s_up_p // tu tez

}else

if sprite_index=s_bohater_lewo{

hspeed=-7

sprite_index=s_up_l // tu tez

}else

sprite_index=s_up

}

Obiekt leci w górę, dotyka kloca i spełnia warunek :) Czyli skacze jeszcze raz. Jak dodasz, że skacze tylko jak nie frunie to to pomoże.

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