Skocz do zawartości

Postać topdown shooter animacja nóg


Rekomendowane odpowiedzi

Witam. Pracuję nad zrobieniem animacji nóg postaci w topdown shooter. Nie interesuje mnie zwykła zmiana spritów na animowaną postać w trakcie ruchu, zrobiłem dwa obiekty, postać od pasa w górę i nogi (animowane). Udało mi się w prosty sposób ustawić by nogi były jakby drugą postacią i dzięki temu podążają za resztą jak należy. Problem polega jednak na samym wprawianiu nóg w ustawienie się w odpowiednim kierunku. Chcę by nogi, jako obiekt ustawiał się zawsze w kierunku w którym porusza się postać i tylko w czasie wykonywania tej akcji obiekt się pojawiał, lub był animowany, by postać w miejscu nie trzepotała nogami :). Na chwilę obecną ten test powiódł się ale niesety brakuje mi tych dwóch elementów. Może ktoś podpowie jak to zrobić, lub ma własny pomysł? Efekt ma przypominać zasadę widoku z góry np czołgu wieża/podwozie jako odrębne części, jedna sterowana przez klawisze, druga przez ruch myszki :). Pozdro.

Odnośnik do komentarza
Udostępnij na innych stronach

no tak ładnie opisałeś problem jak nikt :)

 

więc:

1. do zmiany prędkości animacji służy wbudowana zmienna image_speed

2. radził bym ci zrobic to w jednym obiekcie posłuzy ci do tego funkcja draw_sprite_ext()

 

wystarczy

draw_sprite_ext(sprLudzik,x,y,0(no bo nie masz animacji do tego),...)

draw_sprite_ext(sprNogi_ludzika,x,y,predkosc_animacji_nóg(mozesz dać to image_speed),...)

 

3.zrób sobie coś takiego ze jak ludzik sie nie porusza to image_speed=0

jezeli jest w ruchu to ustaw sobie np na 0.1

 

powodzenia :D pisz jak by coś nie pykło, albo coś słabo wytłumaczyłem

 

 

ps aaaa do ustawiania klatki słuzy zmienna image_index jezeli postać stoi ustaw sobie na image_index=0

Odnośnik do komentarza
Udostępnij na innych stronach

Witam. Pracuję nad zrobieniem animacji nóg postaci w topdown shooter. Nie interesuje mnie zwykła zmiana spritów na animowaną postać w trakcie ruchu, zrobiłem dwa obiekty, postać od pasa w górę i nogi (animowane). Udało mi się w prosty sposób ustawić by nogi były jakby drugą postacią i dzięki temu podążają za resztą jak należy. Problem polega jednak na samym wprawianiu nóg w ustawienie się w odpowiednim kierunku. Chcę by nogi, jako obiekt ustawiał się zawsze w kierunku w którym porusza się postać i tylko w czasie wykonywania tej akcji obiekt się pojawiał, lub był animowany, by postać w miejscu nie trzepotała nogami :). Na chwilę obecną ten test powiódł się ale niesety brakuje mi tych dwóch elementów. Może ktoś podpowie jak to zrobić, lub ma własny pomysł? Efekt ma przypominać zasadę widoku z góry np czołgu wieża/podwozie jako odrębne części, jedna sterowana przez klawisze, druga przez ruch myszki :). Pozdro.

Mam ten sam problem, ;D

Odnośnik do komentarza
Udostępnij na innych stronach

no tak ładnie opisałeś problem jak nikt :)

 

więc:

1. do zmiany prędkości animacji służy wbudowana zmienna image_speed

2. radził bym ci zrobic to w jednym obiekcie posłuzy ci do tego funkcja draw_sprite_ext()

 

wystarczy

draw_sprite_ext(sprLudzik,x,y,0(no bo nie masz animacji do tego),...)

draw_sprite_ext(sprNogi_ludzika,x,y,predkosc_animacji_nóg(mozesz dać to image_speed),...)

 

3.zrób sobie coś takiego ze jak ludzik sie nie porusza to image_speed=0

jezeli jest w ruchu to ustaw sobie np na 0.1

 

powodzenia :D pisz jak by coś nie pykło, albo coś słabo wytłumaczyłem

 

 

ps aaaa do ustawiania klatki słuzy zmienna image_index jezeli postać stoi ustaw sobie na image_index=0

 

Wiem że kiepsko to opisałem bo problem jest raczej drobny. To co mi napisałeś to akurat po części wiem. Nie wiem tylko jakim kodem lub opcją w GM ustawić by animacja się zatrzymywała lub ruszała gdy postać jest w ruchu. Image speed znam, działa ale kurde potrzebuje wtedy tego tak:

 

Gdy ludzik stoi = animacja 0

Gdy ludzik się rusza ( i tutaj nie wiem co zrobić, jaki kod) = animacja rusza.

 

No i rzecz jasna cały obiekt animowanych nóg musi się ustawiać frontem w kierunku ruchu, to też nie mogę wykminić :) Pozdro.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

GML
if keyboard_check(ord("W")) or keyboard_check(ord("S")) or keyboard_check(ord("A")) or keyboard_check(ord("D"))

{

image_speed = ileśtam

}

else

{

image_speed = 0

}

zakładając, że poruszasz się WSAD

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if keyboard_check(ord("W")) or keyboard_check(ord("S")) or keyboard_check(ord("A")) or keyboard_check(ord("D"))

{

image_speed = ileśtam

}

else

{

image_speed = 0

}

zakładając, że poruszasz się WSAD

 

Dzięki serdeczne. Sprawdzę, jak zadziała, zapamiętam :). Kodzik podobny do tego który uzywam by postać strzelała wciskając klawisz myszki.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

bo to zwyczajny warunek, który jest niezbędny przy programowaniu :) używa się go prawie na każdym kroku. Poczytaj dokumentację na GMclanie, jest po polsku. Szybko podłapiesz te wszystkie tajniki, a GML daje jednak znaczne możliwości pomimo, że jest dość uproszczony

Odnośnik do komentarza
Udostępnij na innych stronach

no tak ładnie opisałeś problem jak nikt :)

 

więc:

1. do zmiany prędkości animacji służy wbudowana zmienna image_speed

2. radził bym ci zrobic to w jednym obiekcie posłuzy ci do tego funkcja draw_sprite_ext()

 

wystarczy

draw_sprite_ext(sprLudzik,x,y,0(no bo nie masz animacji do tego),...)

draw_sprite_ext(sprNogi_ludzika,x,y,predkosc_animacji_nóg(mozesz dać to image_speed),...)

 

3.zrób sobie coś takiego ze jak ludzik sie nie porusza to image_speed=0

jezeli jest w ruchu to ustaw sobie np na 0.1

 

powodzenia :D pisz jak by coś nie pykło, albo coś słabo wytłumaczyłem

 

 

ps aaaa do ustawiania klatki słuzy zmienna image_index jezeli postać stoi ustaw sobie na image_index=0

Zapiszesz to w GML ? Bo coś mi nie działa xD

Odnośnik do komentarza
Udostępnij na innych stronach

Podany wyżej przykład działa ale obiekt nadal nie kieruje się w stronę poruszania się frontem. Także wyskoczył kolejny problem bo jak postać wpadnie na mur, osta stanie, nogi idą dalej :). Spróbuje coś z tym zrobić ale przydało by się w prosty sposób scalić ze sobą te dwa obiekty :).

 

Ok nogi już nie latają gdzie chcą ustawiłem te samą maskę co postać dla tego obiektu i mają jednakową kolizje z obiektami. Niestety nadal nie wiem jak zrobić by nogi jako obiekt były frontem zawsze obrócone w kierunku w którym idzie postać.

Odnośnik do komentarza
Udostępnij na innych stronach

xscale-skala w osi X(jezeli rozmiar ma być taki jak obrazek to ustaw na 1),

yscale-skala w osi Y,

rot-obrót mozesz dać zmienna wbudowaną image_angle lub direction,

color-czy ma kolorować, najlepiej daj image_blend,

alpha- przezroczystość 0-1 tez za to odpowiada wbudowana zmienna image_alpha

mam nadzieje ze pomogłem :) sory za asów wyżej, święta idą każdy(chyba, a ja na pewno) wkurw##ny

 

edit:

@up a jak zrobiłeś sterowanie? image_angle odpowiada za kierunek wyświetlania sprite'a, w prawo=0 przeciwnie do wskazówek zegara

Odnośnik do komentarza
Udostępnij na innych stronach

xscale-skala w osi X(jezeli rozmiar ma być taki jak obrazek to ustaw na 1),

yscale-skala w osi Y,

rot-obrót mozesz dać zmienna wbudowaną image_angle lub direction,

color-czy ma kolorować, najlepiej daj image_blend,

alpha- przezroczystość 0-1 tez za to odpowiada wbudowana zmienna image_alpha

mam nadzieje ze pomogłem :) sory za asów wyżej, święta idą każdy(chyba, a ja na pewno) wkurw##ny

 

edit:

@up a jak zrobiłeś sterowanie? image_angle odpowiada za kierunek wyświetlania sprite'a, w prawo=0 przeciwnie do wskazówek zegara

 

Tak zrobiłem ale musiałem ustawić na razie by nogi kierowały się frontem w kierunku myszki a mi chodzi o to by postać z giwerą kierowały się w strone myszki natomiast nogi w kierunku w którym idę, coś jak w zombie shooter :).

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