[Allegro] animacja chodzenia?
Ostatnio zmodyfikowano 2010-02-08 19:07
dmx81 |
» 2010-02-08 19:07:17 ja przewaznie robie tak, ze np dla twojego przykladu 12 klatek - 3 na kazdy kierunek, czyli (oczywiscie sa to dane przykladowe) 0,1,2 - lewo 3,4,5 - prawo 6,7,8 - dol 9,10,11 - gora if( key[ KEY_LEFT ] ) { lewy = true; prawy = false; dol = false; gora = false; if( licznik_klatek > 2 ) licznik_klatek = 0; licznik_klatek++; }
podobnie dla kazdego innego, z tym, np dla prawego: if( key[ KEY_RIGHT ] ) { ... if( licznik_klatek < 3 && licznik_klatek > 5 ) licznik_klatek = 3 }
mozna to umiescic w timerze... ewentualnie mozesz tam umiescic inna zmienna, jakis licznik, ktory bedzie sie ciagle zwiekszal while( speed > 0 ) { ... licznik++; speed--; }
if( key[ KEY_LEFT ] ) { lewy = true; prawy = false; dol = false; gora = false; if( licznik > 20 ) { licznik_klatek++; licznik = 0 } if( licznik_klatek > 2 ) licznik_klatek = 0; }
no i pod tym wszytskim masked_blit( animacja, bufor, szerokosc * licznik_klatek, 0, GDZIE_X, GDZIE_Y, SZEROKOSC, WYSOKOSC );
no i na ekran.... bool lewy, prawy gora i dol - zapewniaja, ze obraz nie zniknie, kiedy nie nacisniesz zadnego klawisza - pozostanie ostatni znany kierunek - mozesz tez dac swoj warunek, ze jesli zaden klawisz nie wcisniety, to jakas dodatkowa klatka sie wyswietli |
|
1 2 « 3 » |