[allegro]Spowolnienie animacji postaci.
Ostatnio zmodyfikowano 2012-01-13 16:14
ly000 Temat założony przez niniejszego użytkownika |
[allegro]Spowolnienie animacji postaci. » 2012-01-12 23:19:29 Witam, napisałem coś takiego: void anim( int sx, int sy ) { sx = sx * 40; sy = sy * 36; masked_blit( postac, bufor, sx, sy, postac_x, postac_y, 40, 36 ); }
if( f > 2 ) { f = 0; }
klaw = false;
if(( key[ KEY_RIGHT ] ) &&( mapa_x < 14 ) ) { e = 2; klaw = true; klicz++; mapa_x = mapa_x + 1; }
if(( key[ KEY_LEFT ] ) &&( mapa_x > 0 ) ) { e = 3; klaw = true; klicz++; mapa_x = mapa_x - 1; }
if(( key[ KEY_DOWN ] ) &&( mapa_y < 40 ) ) { e = 0; klaw = true; klicz++; mapa_y = mapa_y + 1; }
if(( key[ KEY_UP ] ) &&( mapa_y > 0 ) ) { e = 1; klaw = true; klicz++; mapa_y = mapa_y - 1; }
anim( e, f );
if( klaw == true ) { f++; } Tzn. mamy jakiś plik bmp z wszystkimi animacjami postaci oraz funkcje w kodzie która kopiuję odpowiednią animacje. zmienna e odpowiada za animacje podstawowe : obrót postaci w prawo lewo itp.(jest ich 4) a zmienna f odpowiada za poruszanie nogami.(jest ich 8,) Mam nadzieje że zrozumieliście coś z tych bzdur ;]. I teraz chciałbym to tak przerobić żeby postać poruszała wolniej nogami. 1 kratka do przodu = 1 zmiana nogi. Bo teraz to wygląda bardzo nierealistycznie. Ktoś ma jakieś pomysły? Będę wdzięczny za pomoc ;] |
|
draculeq |
» 2012-01-13 01:56:48 możesz sobie zrobić zmienna pomocniczą którą będziesz zwiększał w funkcji jak speed==1, i jeśli pomocnicza%2==0 to a++; i wtedy masz 2x wolniej |
|
hincu |
» 2012-01-13 06:43:36 poczytaj o timerach |
|
draculeq |
» 2012-01-13 08:52:25 Na forum bardzo słabo są wytłumaczone timery, poza tym jak kolega mówi że ma animacje to życzę powodzenia w oglądaniu ich bez timerów :D |
|
ly000 Temat założony przez niniejszego użytkownika |
» 2012-01-13 12:57:45 Próbowałem stworzyć oddzielny timmer dla animacji, ale wtedy postać czasami znikała. |
|
Gabes |
» 2012-01-13 13:50:23 Postaci wyświetlaj normalnie a timer daj do funkcji przemieszczania czy wyświetlania poszczególnych klatek animacji.Przykładzik
http://www.wrzuc.to/2bjIQP.wt
Dałem dwa timery.
Przykład w Code Blocks i Allegro 4.4.2 nie ma sensu siedzieć w roku 2005 i 2007 gdy są bardziej nowoczesne środowiska i nowsze wersje bibliotek.
|
|
ly000 Temat założony przez niniejszego użytkownika |
» 2012-01-13 16:14:08 Hmmm... Jednak skorzystałem z tego co napisał draculeq, proste rozwiązanie, dziwne że sam na to nie wpadłem :D. Dzięki. |
|
« 1 » |