Skocz do zawartości

Animacje.. kłopot


Exigo

Rekomendowane odpowiedzi

Na animacje chodzenia:

Event Keyboard Left:

GML
if place_free(x-4,y)

{

x-=4;

sprite_index=sIdzie_lewo;

image_speed = 0.4;

}

Event Keyboard Right:

GML
if place_free(x+4,y)

{

x+=4;

sprite_index=sIdzie_prawo;

image_speed = 0.4;

}

 

Na animacje stania:

Event Keyboard Release Left

GML
sprite_index = sStoi;

Event Keyboard Release Right

GML
sprite_index = sStoi;

 

Na animację skakania.

Create:

GML
flaga=1

Step:

GML
if vspeed=0 and flaga=0

{

sprite_index = sStoi;

flaga=1;

}

UP:

GML
if ! place_free(x,y+1)

{

sprite_index = sSkacze;

vspeed = -10

flaga=0;

}

 

O to chodziło? :)

Odnośnik do komentarza
Udostępnij na innych stronach

Powiedzmy że tak... zaraz sprawdzę... :)

 

Edit: Może być, lecz jest mały bug - w trakcie lotu, jeśli się naciśnie przycisk ruchu.. zmienia się animacja na chodzenie. :(

 

Edit_2: Jeszcze jedno.... gdy się podskoczy, jest dobrze.. ale gdy się spada jest animacja stania...

 

Edit_3: Może jednak 'przekaże pałeczkę' koleżką z Teamu... :P

 

Edit_4: Jednak postanowiłem sam pogłówkować. :D

Odnośnik do komentarza
Udostępnij na innych stronach

Pogłówkowałem jakiś czas i zrobiłem taki oto engine animacji i sterowania w platformówce, daję go, dla tego iż może komuś się przyda... oto on:

 

Deklarowanie paru pierdół w CREATE:

GML
idzie_w_prawo = 0;

idzie_w_lewo = 0;

spadanie = 0;

No i samo sterowanie wraz z animacjami w STEP'ie:

GML
image_speed = 0.5;

// Grawitacja.

gravity_direction=270;

if place_free(x,y+1)

{

gravity=0.5;

skacze = 1;

}

else

{

gravity=0;

skacze = 0;

}

// Maxymalna prędkość spadania.

if vspeed>6

{

vspeed=6;

}

 

//-----Sterowanie-----

//W prawo.

if keyboard_check(vk_right)

{

if place_free(x+1,y)

{

x+=5;

if skacze = 0

{

idzie_w_prawo = 1;

}

}

}

else

{

idzie_w_prawo = 0;

}

//W lewo.

if keyboard_check(vk_left)

{

if place_free(x-1,y)

{

x-=5;

if skacze = 0

{

idzie_w_lewo = 1;

}

}

}

else

{idzie_w_lewo = 0;}

// W górę.

if keyboard_check(vk_up)

{

if !place_free(x,y+1)

{

vspeed = -7.5;

}

}

//-----Animacje-----

if idzie_w_prawo = 1

{

sprite_index = spr_hero_idzie_prawo;

}

 

if idzie_w_lewo = 1

{

sprite_index = spr_hero_idzie_lewo;

}

 

if idzie_w_lewo = 0 && idzie_w_prawo = 0 && skacze = 0

{

sprite_index = spr_hero_stoi;

}

 

if skacze = 1

{

sprite_index = spr_hero_skacze;

}

 

Troszkę namieszane, ale ważne że działa :P .

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