Skocz do zawartości

Zablokowane Błąd w animacji


Neko Rushi

Rekomendowane odpowiedzi

Witam.

W celach edukacyjnych zacząłem się bawić w odtwarzanie systemu poruszania się z gameboyowych pokemonów.

Z kilkoma problemami się już uporałem, ludzik chodzi jak należy, jednak jest problem z animacją.

Mianowicie:

Naciskam strzałkę, próbując wejść na przeszkodę. Program na to nie pozwala i postać stoi w miejscu.

Jednak, gdy puszczam klawisz, postać dziwnie podskakuje i wraca do normalnego stanu.

 

Przykład

Byłbym wdzięczny, gdyby ktoś mógł wskazać błąd w kodzie/poprawić, co bym się czego więcej nauczył.

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

wywal wszystkie keyboard eventy a ich zawartość wstaw w step w tej kolejności:

GML
if (global.facing="R")

{

if global.moving=true {sprite_index=sprCharR_run; image_speed=imgSpeed} else if global.moving=false { sprite_index=sprCharR }

}

if (global.facing="D")

{

if global.moving=true {sprite_index=sprCharD_run; image_speed=imgSpeed} else if global.moving=false{ sprite_index=sprCharD }

}

if (global.facing="L")

{

if global.moving=true {sprite_index=sprCharL_run; image_speed=imgSpeed} else if global.moving=false{ sprite_index=sprCharL }

}

if (global.facing="U")

{

if global.moving=true {sprite_index=sprCharU_run; image_speed=imgSpeed} else if global.moving=false{ sprite_index=sprCharU }

}

if (keyboard_check(vk_left)) or (keyboard_check(vk_right)) or (keyboard_check(vk_up)) or (keyboard_check(vk_down)) {global.moving=true}

else if place_snapped(32,32) {global.moving=false}

 

 

if keyboard_check(vk_left)

{

if place_snapped(32,32) if !place_meeting(x-1,y,Rock1)

{

if vspeed=0 {{hspeed=-charSpeed}; global.facing="L"}

}

else {hspeed=0; global.moving=false}

}

 

if keyboard_check(vk_up)

{

if place_snapped(32,32) if !place_meeting(x,y-4,Rock1)

{

if hspeed=0 {{vspeed=-charSpeed}; global.facing="U"}

}

else {vspeed=0; global.moving=false}

}

 

if keyboard_check(vk_right)

{

if place_snapped(32,32) if !place_meeting(x+1,y,Rock1)

{

if vspeed=0 {{hspeed=charSpeed}; global.facing="R"}

}

else {hspeed=0; global.moving=false}

}

 

if keyboard_check(vk_down)

{

if place_snapped(32,32) if !place_meeting(x,y+1,Rock1)

{

if hspeed=0 {{vspeed=charSpeed}; global.facing="D"}

}

else {vspeed=0; global.moving=false}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...