Skocz do zawartości

problem z ruchem platformowy


Rekomendowane odpowiedzi

Witam, napotkałem ostatnio pewien problem. Kiedy wciskam lewy przycisk, a następnie prawy to postać zmienia kierunek z lewej strony na prawą. Lecz gdy wciskam prawy przycisk, a następnie lewy to postać nie zmienia kierunku i idzie dalej w prawą stronę. Nie wiem jak to naprawić, mój kod znajduje się poniżej. Liczę na pomoc ;p

GML
if (keyboard_check(vk_left))

{

image_speed=0.2;

sprite_index=spr_player_move

image_xscale=-1

}

 

if (keyboard_check(vk_right))

{

image_speed=0.2;

sprite_index=spr_player_move

image_xscale=1

}

 

if left && xspeed>-max_x

{

xspeed=-2;

image_xscale=-1

}

 

if right && xspeed<max_x

{

xspeed=2;

image_xscale=1

}

 

if keyboard_check_released(vk_left) or keyboard_check_released(vk_right)

{

sprite_index=spr_player_stay

}

if xspeed<0 && !left then xspeed+=frc;

if xspeed>0 && !right then xspeed-=frc;

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

Ponieważ kod ruch w prawo wykonuje się najpóźniej, co znaczy, że nadpisze kod w lewo.

Jeżeli nie chcesz żadnego ruchu przy obu przyciskach po prostu wprowadzaj zmiany jesli "wcisnal w lewo ale nie w prawo" albo "wcisnal w prawo ale nie w lewo".

Odnośnik do komentarza
Udostępnij na innych stronach

Nie testowałem, ale powinno działać :)

GML
if (keyboard_check(vk_left))

{

image_speed=0.2;

sprite_index=spr_player_move

image_xscale=-1

}

 

if (keyboard_check(vk_right))

{

image_speed=0.2;

sprite_index=spr_player_move

image_xscale=1

}

 

xspeed = (left && xspeed>-max_x)*-2 + (right && xspeed<max_x)*2; //będzie przybierać odpowiednie wartości -2, 2 lub 0(zero jeżeli oba przyciski naciśnięte). W jednej linijce i chyba najoptymalniej

 

if keyboard_check_released(vk_left) or keyboard_check_released(vk_right)

{

sprite_index=spr_player_stay

}

if xspeed<0 && !left then xspeed+=frc;

if xspeed>0 && !right then xspeed-=frc;

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