Skocz do zawartości

Skrypty Sterowania Bohatera Top-Down | Isometric


Rekomendowane odpowiedzi

Witam,

udostępniam wam łatwy, uniwersalne kody do sterowania bohaterem i jego animacjami. Jeżeli będziecie chcieli, to mogę dodać komentarze.

Kod banalny i prosty, ale przynajmniej zawsze działa dobrze. :)

 

Co robi mój kod:

 

[Poruszanie:]

-nie pozwala przejść przez obiekty, które mają zaznaczone [solid],

-chodzenie: góra, dół, lewo, prawo,

-sprawdza kierunek do myszki, umożliwia późniejsze np. strzelanie,

 

[Animacje:]

-nasz bohater patrzy się w lewo/prawo, w zależności od położenia myszki,

-jeżeli nasz bohater idzie w kierunku myszki animacja odtwarza się do przodu; jeżeli do tyłu, animacja odtwarza się od tyłu,

-zmienia animację między chodzeniem, a poruszaniem się, jeżeli wykryje ruch.

 

Sterowanie bohaterem:

GML
///scr_PlayerController

move_speed=argument0

 

if(keyboard_check(ord("A"))){ if place_free(x-move_speed,y){ x-=move_speed }}

else

if(keyboard_check(ord("D"))){ if place_free(x+move_speed,y){ x+=move_speed }}

 

 

if(keyboard_check(ord("W"))){ if place_free(x,y-move_speed){ y-=move_speed }}

else

if(keyboard_check(ord("S"))){ if place_free(x,y+move_speed){ y+=move_speed }}

 

direction=point_direction(x,y,mouse_x,mouse_y)

 

Sterowanie jego animacjami:

GML
///scr_PlayerAnimation

anim_speed=argument0

anim_Idle=argument1

anim_Move=argument2

 

if image_xscale= 1 { if x>xprevious {image_speed= anim_speed }

else{image_speed=-anim_speed}}

 

if image_xscale=-1 { if x<xprevious {image_speed= anim_speed }

else{image_speed=-anim_speed}}

 

if x = xprevious && y = yprevious{

if sprite_index != anim_Idle{

sprite_index = anim_Idle}

}else{

if sprite_index != anim_Move{

sprite_index = anim_Move}}

 

if x<mouse_x

{

image_xscale=1

}else{

image_xscale=-1

}

 

 

Udział w credistach mile widziany :)

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