Sticky Temat założony przez niniejszego użytkownika |
[Allegro] animacja chodzenia? » 2010-02-08 07:42:40 Witam, dosyć niedawno zacząłem programować w allegro, przeczytałem wszystkie lekcje kursu i wszystko szło ok. Potrzebuję jednak animacji chodzenia w 4 strony (góra,dół,lewo,prawo), w kursie jest tylko coś takiego, że ludzik ciągle zmienia animacje, nie zależnie od wciśniętego przycisku. Próbowałem zrobić to na takiej zasadzie jak w kursie, tylko z 4 kierunkami ale mi się nie udało. Chcę, żeby po wciśnięciu danej strzałki wyświetlał się pierwszy krok, po nim drugi i później postać bez ruchu, skierowana wciąż w tym samym kierunku. Może znacie jakieś prostrze sposoby niż ten opisany w kursie? Jak spróbowałem go zrobić na 4 kierunki nie byłem nawet blisko tego, do czego chcę dojść. Według mnie animacja chodzenia jest jednym z najważniejszych elementów w grafice gry 2d, dziwnie to wygląda gdy postać przemieszcza się po mapie ciągle skierowana w tym samym kierunku, na dodatek nieruchoma. Z góry bardzo dziękuję za pomoc. |
|
pekfos |
» 2010-02-08 14:09:55 enum cDir { DIR_UP = 0, DIR_DOWN = 1, DIR_LEFT = 2, DIR_RIGHT = 3 }; short tmp = 0; cDir dir = DIR_UP;
if( tmp == 0 ) { if( key[ KEY_UP ] ) { tmp = 1; dir = DIR_UP; } } else if( tmp < MAX_KLATEK ) tmp++; else if( tmp >= MAX_KLATEK ) tmp = 0;
masked_blit( ludek, bufor, tmp * ROZMIAR_LUDKA_X, dir * ROZMIAR_LUDKA_Y, 100, 100, ROZMIAR_LUDKA_X, ROZMIAR_LUDKA_Y ); |
|
DejaVu |
» 2010-02-08 15:36:32 1) jeśli obiekt się porusza: klatka =( klatka + 1 ) % ilosc_klatek; 2) rysowanie: switch( obecny_kierunek ) { case E_BRAK: blit(...); break; case E_LEWO: blit( ludek_lewy[ klatka ],...); break; case E_PRAWO: blit( ludek_prawy[ klatka ],...); break; } W powyższym kodzie zakłada się, że ludek_lewy i ludek_prawy są tablicami, które zawiarają klatki ludzika poruszającego się w lewo/w prawo. Dodatkowo ilość klatek dla ruchu w lewo jest taka sama jak dla ruchu w prawo. |
|
Sticky Temat założony przez niniejszego użytkownika |
» 2010-02-08 16:56:34 Dzięki wielkie, odrazu biorę się do sprawdzania :) |
|
Sticky Temat założony przez niniejszego użytkownika |
» 2010-02-08 17:07:15 ok już to ogarnąłem :) zaraz (jeśli mi się uda) skończę projekt z tą animacją to dam edita i napiszę czy mi działa :d
/edit
Wszystko działa tak jak tego chciałem, wielkie dzięki jeszcze raz! niedługo może wrzucę swój projekt do 'nasze prace' :) |
|
DejaVu |
» 2010-02-08 17:17:29 Weź przykład z kursu, skompiluj i uruchom. Jeśli działa to znaczy, że Ty coś źle robisz. Swoją drogą jeden temat = jeden problem. |
|
Sticky Temat założony przez niniejszego użytkownika |
» 2010-02-08 18:18:00 Jeszcze jedno, co do tej animacji. Wszystko jest ok, tylko ludzik miga gdy się rusza. Wiecie jak temu zaradzić? :| |
|
pekfos |
» 2010-02-08 18:27:44 umiejętności jasnowidzenia jeszcze nie posiadłem.. pokaż co napisałeś. |
|
« 1 » 2 3 |