Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Animaatiot OpenGL/SDL

Touho [17.11.2005 22:24:38]

#

Millä tavalla kannattaisi tehdä sivusta katsottavaan tasohyppelypeliin animaatiot? Onko järkevää tehä jokaisesta framesta oma bmp kuva vai jotenkin liikuttaa ihan koodirivien avulla? Käytössä on siis SDL sekä OpenGL.

Antti Laaksonen [17.11.2005 22:50:12]

#

Jos pelihahmon asento muuttuu (esim. kävely), niin sitten sinun on kyllä parasta tehdä oma kuva jokaisesta animaation vaiheesta. Ohjelman olisi nimittäin erittäin vaikeaa tehdä juuri oikeita muutoksia pelihahmoa esittävään kuvaan (esim. aidon näköisesti liikkuva jalka).

Siis animaation toteutus on kaksivaiheinen:
- pelihahmon kuva valitaan sopivaksi
- pelihahmo siirretään oikeaan paikkaan näytöllä

Gwaur [17.11.2005 23:12:47]

#

Kuvatiedostojen määrää voi myös vähentää tallentamalla animaation kuvat vierekkäin tai päällekkäin oikeaan järjestykseen yhteen tiedostoon siten, että kukin kuva on samanlevyinen ja -korkuinen. Sitten normaalilla tile-tekniikalla valitaan oikea kuva ja piirretään se.

Metabolix [17.11.2005 23:29:46]

#

Tai sitten vaikka niinkin, etteivät ne edes ole saman kokoisia, jos jonnekin myös tallennetaan tieto niiden sijainneista. Niin minä tein, ja mahtui muuten paljon enemmän pikkukuvia yhteen 256x256-kuvaan.

Touho [18.11.2005 14:05:57]

#

Mahtaa olla aika vaikeata tehdä jotain 3D GTA tyylista aitoa kävelyä...

Onko joissain vanhoissa peleissä (esim Commander Keen) piirretty vaan tuhottomasti kuvia? Siinäkin pelissä noita monstereita on aikalailla joka lähtöön, joten kuvatekniikalla on graafikolla aika paljon hommaa. Tosin resoluutio ei ole niin suuri, että kuvat veisivät kovin paljoa tilaa.

Metabolix [18.11.2005 16:25:45]

#

No Commander Keeneissä ei kyllä hirveän monta erilaista hahmoa ole, ja kun katsot sitä kävelyä, niin yhdessä kävelyanimaatiossa ei ole kuin ihan pari kuvaa. Ja nopeammin piirtää sen verran kuvia kuin ohjelmoi jokaisen erilaisen hahmon animoinnin, saatikka, että sen ajan koneissa olisi ollut moiseen tehoja. Sitä paitsi eri muotoisten otusten animointiin ei voisi edes samaa koodia käyttää.

3D-systeemit toimivat sitten aivan toisella tavalla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta