Skocz do zawartości

Animacja szkieletowa


Rekomendowane odpowiedzi

Masz sprite tułowia. Rysujesz go w draw (direction ustawiasz w kierunku myszki).

Potem bierzesz głowę, też rysujesz w draw, zaraz po tułowiu (direction też w kierunku myszki)

Lewa ręka:

GML
x + lengthdir_x( odleglosc_od_srodka_tulowia, direction_w_kierunku_myszki + 90 );

y + lengthdir_y( odleglosc_od_srodka_tulowia, direction_w_kierunku_myszki + 90 );

// (obrót w kierunku myszki + jakiś współczynnik)</span></span>

Prawa ręka:

GML
x + lengthdir_x( odleglosc_od_srodka_tulowia, direction_w_kierunku_myszki - 90 );

y + lengthdir_y( odleglosc_od_srodka_tulowia, direction_w_kierunku_myszki - 90 );

// (obrót w kierunku myszki + jakiś współczynnik)</span></span>

(wszystko w draw obiektu oHero)

Odnośnik do komentarza
Udostępnij na innych stronach

Mam coś takiego, ale jak to teraz animować, w draw:

 

GML
// Lewa strona

draw_sprite_ext(s_handl,0, // Ręka

x + lengthdir_x(13,dir+90),

y + lengthdir_y(13,dir+90),

1,1,dir,c_white,1)

 

//Prawa Strona

draw_sprite_ext(s_handl,0, // Ręka

x + lengthdir_x(13,dir-90),

y + lengthdir_y(13,dir-90),

1,-1,dir,c_white,1);

 

//Tors

draw_sprite_ext(s_corp,0,x,y,1,1,dir,0,1);

 

 

// Głowa

draw_sprite_ext(s_head,0,x,y,1,1,dir,c_white,1);

Odnośnik do komentarza
Udostępnij na innych stronach

Sorka za odswieżenie, mam taki kod w stepie i jak naciskam w postać znika:

 

GML
dir = point_direction(x,y,mouse_x,mouse_y);

 

if dzialanie = 0 // Stanie

{sinus = sin(degtorad(sin_p))*7;

sin_p += 5;}

if dzialanie = 1 // Ruch

{sinus = sin(degtorad(sin_p))*15;

sin_p += pred_ruch*4;}

 

if keyboard_check(vk_nokey)

{

dzialanie = 0;

wyzeruj = true;

}

else

{

 

if keyboard_check(ord('W'))

{dzialanie = 2;scr_wyzeruj();}

 

}

 

if dzialanie = 1

{ruch = true;}

else

{ruch = false;}

 

if ruch = true

{

pred_ruch = min(pred_ruch,max_pred_ruch);

x+= lengthdir_x(pred_ruch,dir+sinus);

y+= lengthdir_y(pred_ruch,dir+sinus);

pred_ruch+= 0.3;

sin_ruch = sinus*0.65;

}

else

{

pred_ruch = 0;

sin_ruch = 0;

}

Odnośnik do komentarza
Udostępnij na innych stronach

Mam taki kod , ale jest taki problem że jak obrócę się w prawo to broń jest trzymana normalnie ale jak obrócę się w lewo to broń już jest prawie w tej samej pozycji tylko się trochę w dół przesuwa.

 

GML
// Prawa strona

draw_sprite_ext(s_gun,0, // Broń (PRAWA)

x + lengthdir_x(13,dir-90+(sinus*1.2)) + lengthdir_x(21,dir+(sinus*2.2)),

y + lengthdir_y(13,dir-90+(sinus*1.2)) + lengthdir_y(21,dir+(sinus*2.2)),

1,1,dir+70+(sinus*3.5),c_white,1);

 

 

Sorka za odświeżenie,

Odnośnik do komentarza
Udostępnij na innych stronach

Chcesz broń z prawej tak? No to nie prościej tak:

GML
x=hero.x+lengthdir_x(16,hero.direction+90)

y=hero.y+lengthdir_y(16,hero.direction+90)

Tam gdzie hero to sobe zamien na nazwe obj ktory trzyma tą broń. Tam gdzie jest 16 wstaw odległośc od origina do miejsca w którym chcesz aby trzymał broń.

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