130 likes | 231 Views
Peliohjelmointia Jypelillä. Tero Jäntti Tomi Karppinen Syksy 2009. Taustaa. Kesällä 2009 tietotekniikan laitos järjesti kaksi peliohjelmointikurssia yläasteikäisille Kursseja varten kehitettiin kirjasto 2D-peleille nimeltä Jypeli Hauskaa oli . Toteutuksesta.
E N D
Peliohjelmointia Jypelillä Tero Jäntti Tomi Karppinen Syksy 2009
Taustaa • Kesällä 2009 tietotekniikan laitos järjesti kaksi peliohjelmointikurssia yläasteikäisille • Kursseja varten kehitettiin kirjasto 2D-peleille nimeltä Jypeli • Hauskaa oli
Toteutuksesta • Toteutettu C#-kielellä käyttäen XNA-kirjastoa • Toimii vain Windowsilla • Pelit pyörii myös XBox 360:llä
Esimerkkejä • Ekan kurssin top-3… • Tokan kurssin top-3…
Nettisivut • trac.cc.jyu.fi/projects/npo09/
Yleisiä periaatteita • Jypeli on sovelluskehys (framework) • ”Dont call us, we call you” • Kirjasto ajaa pelisilmukkaa, hoitaa piirtämisen, yms… • Ohjelmoija määrittelee mitä tapahtuu kun peli käynnistyy, kappaleet törmää, …
Fysiikka • Jypeli sisältää fysiikkamoottorin (Physics2D.NET) • Olioilla massa, nopeus, … • Törmäyksille voi asettaa tapahtumia (mitä tapahtuu kun ammus osuu pelaajaan…)
Valmiita luokkia (1/3) • RealTimeGame – pyörittää peliä • PhysicsGame – fysiikka mukana • GameObject – olio pelissä • PhysicsObject – tottelee fysiikan lakeja
Valmiita luokkia (2/3) • Level – sisältää oliot, taustan, ym. • Meter<T> - voi laskea vaikka autoja • ValueDisplay – näyttää laskurin arvon • Weapon – kantaluokka aseille • Tank – panssarivaunu • HighScoreList
Valmiita luokkia (3/3) • ScreenObject – näyttökoordinaatteja käyttäviä olioita (ikkunat, mittarit ym.) • RTGWindow – kantaluokka käyttöliittymän ikkunoille, ScreenObjectin jälkeläinen • AlertWindow – yksinkertainen viesti-ikkuna • ListSelectionWindow – listavalintaikkuna • yms.
Harjoitustyöstä • Tehdään ainakin yksi luokka, jossa • Ainakin yksi tapahtuma • Ainakin yksi ominaisuus (property) • Tehdään yksi tai mielellään kaksi peliä, jotka käyttävät luokkaa. • Tai projektimalli ja peli • Aihe vapaa
Komponentti-esimerkkejä • Valikot • Lentokone • Laskuvarjo • Strategiapelipohja/hahmo (hiiriohjattava) • Minigolf-radan osat (kalteva pinta)
Esimerkkipeli • Aletaan koodaamaan… • Jatketaan seuraavalla luennolla • Saa ehdottaa ominaisuuksia!