Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] animacja chodzenia?

Ostatnio zmodyfikowano 2010-02-08 19:07
Autor Wiadomość
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
C/C++
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:
C/C++
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
C/C++
while( speed > 0 )
{
    ...
    licznik++;
    speed--;
}
//a poza timerem

if( key[ KEY_LEFT ] )
{
    lewy = true;
    prawy = false;
    dol = false;
    gora = false;
    if( licznik > 20 ) // dodalem to - sam decydujesz o predkosci animacji, moze byc 5...50 itd)
    {
        licznik_klatek++;
        licznik = 0
    }
    if( licznik_klatek > 2 )
         licznik_klatek = 0;
   
}
no i pod tym wszytskim
C/C++
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
P-13671
1 2 « 3 »
Poprzednia strona Strona 3 z 3