GDI - Demo 4

Toteuta seuraavat tehtävät Windows Forms -ohjelmina ja -komponentteina. Älä käytä lomakkeella näkyviä valmiita kontrolleja jollei tehtävänannossa niin erikseen neuvota vaan piirrä kaikki tarvittava GDIn avulla suoraan lomakkeelle.

Tehtävä 1

Toteuta yksinkertainen kellokomponentti Panel-luokasta perimällä. Komponentti näyttää juoksevan kellonajan selkeällä fontilla (drawString). Kelloa päivitetään näytölle kerran sekunnissa. Päivitä kellonaika GDIn avulla suoraan Panelin sisältöön.

Kellonajan on osattava hyödyntää leveyssuunnassa koko paneelin sallima tila. Ts. Jos paneelia suurentaa tahi pienentää niin kellonaika täyttää kuitenkin aina koko paneelin. Minimikoko on 10x80 pikselin kokoinen alue. Sitä pienemmissä paneeleissa kello saa valua yli alueen.

vinkki1

Vinkki2

Tehtävä 2

Peri edellisessä tehtävässä tekemästäsi komponentista uusi luokka, joka esittää kellonajan digitaalisen kellon tapaan. Kello toimii siis samalla tavalla kuin ensimmäisessä tehtävässä mutta esitystapa on erilainen. Joudut piirtämään kellonaikaa esittävät kirjaimet ja pisteet sopivilla viivoilla. Digitaalisen kellonkin pitää skaalautua paneelin koon mukana.

Tehtävä 3

Peri ensimmäisessä tehtävässä tekemästäsi komponentista uusi luokka, joka esittää kellonajan analogisen kellon tapaan. Kello toimii siis samalla tavalla, kuin ensimmäisessä tehtävässä mutta esitystapa on erilainen. Piirrä (drawLines etc.) mallikuvaa vastaava kellotaulu eli numerot eivät ole suorassa vaan kallellaan ja numeroiden väleistä löytyvät minuutteja ja sekunteja osoittavat pisteet. Viisarit ovat mustia nuolia joista tuntiviisari on paksuin ja lyhin ja sekuntiviisari ohuin ja pisin. Kellon reunusta ei tarvitse tehdä samanlaiseksi kuin kuvassa vaan siisti kullansävyinen liukuvärireunus kelpaa. Kellon pitää skaalautua paneelin koon mukana.

Tehtävä 4

Ohjelmoi matopeli.

Lomakkeen kokoa muuttamalla muuttuu myös matopelin pelialue. Pelin tasoa voi säätää muuttamalla madon lähtöpituutta, nopeutta, madon leveyttä ja saaliiden kokoa. Lisää asetuksia varten sopivat kontrollit lomakkeen ylälaitaan.

Aseta lomakkeen alalaitaan pistelaskuri

Toteuta mato ja sen saaliit kokonaan GDIn avulla piirtämällä ilman valmiita kontrolleja.

Bonustehtävä (+25%)

Ohjelmoi Zolyx-peli. Katso mallia Bolyx-nimisestä kloonista.

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/demot/demo4/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2010-10-04 16:03:55
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta