Olen tehnyt harjoituksia sdlää käyttäen ja nyt mietin, että miten saan jonkun näyttämäänä, että se kävelee(pelihahmo), eikä vaan mee samassa asennossa eteenpäin?
Pitäisikö tehdä kaksi kuvaa, joita kutsutaan vuorotellen?
Joko usealla kuvalla tai sitten yksi kuvatiedosto, jossa kaikki animaation kuvat vierekkäin tai allekkain ja lisäksi jokin animaatiolaskuri, jonka mukaan aina haetaan oikea kuva (tai oikea osa kuvasta, jos kaikki yhdessä).
Laskuri?
kuvaNro++; jos viimenen kuva niin kuvaNro = 0;
Laskuri.
// Ukko on liikenteessä void piirraKavelevaOtus(Otus* ukko) { // Piirretään kävelevän ukon kuva kohtaan (ukko->x, ukko->y). ukko->kavelykuva // sisältää kaikki kävelyanimaation kuvat vierekkäin, yksittäisen kuvan leveys // 64 ja korkeus 128. piirraKuva(ukko->kavelykuva, ukko->x , ukko->y , ukko->laskuri*64, ukko->laskuri*64+64, 0, 128); ukko->laskuri = (ukko->laskuri+1) % ukko->kavelykuvienmaara; }
Hyvinkin hätäisesti väännetty esimerkki, ei järkevä, mutta toivottavasti selkeyttää laskurin tarkoitusta.
kk
Ja eiköstä ton laskemisosan voi toteuttaa myös näin:
if(++ukko->laskuri==ukko->kavelykuvienmaara) ukko->laskuri=0;
Aihe on jo aika vanha, joten et voi enää vastata siihen.