Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ ja Grafiikka

Tapsa [03.10.2009 03:20:09]

#

Olen tutustunut kirjaan "Opi C++ 21 päivässä". Valitettavasti en oppinut. Ensinnäkin tuo syntaksi, jos teet pienenkin virheen joka menee vielä C++:ssa läpi saa koneen kaatumaan.

Osoittimet eivät kuulu opettelioille.

Sain aikaan tulostuksen luokkaa 2+2=4, siinä kaikki

Miten C++:lla luodaan kuvia tai jotain VB-luokan ohjelmia?

Jaska [03.10.2009 09:13:34]

#

Tapsa kirjoitti:

Osoittimet eivät kuulu opettelioille.

Nyt en ymmärrä. Opettelioille kuuluvat uudet asiat ja jos osoittimet ovat uusia, niin ne kuuluvat opettelijoille.

Tapsa kirjoitti:

Miten C++:lla luodaan kuvia

Google avulla ilmeisesti http://www.ijg.org/ hoitaa homman, mutta omakohtaista kokemusta asiasta ei ole.

Tapsa kirjoitti:

tai jotain VB-luokan ohjelmia?

Luokat eivät ole ohjelmia. Luokat määritellään komennolla

class VB

ja luodaan komennolla

VB luokka;

Opiskelussa on tärkeää, että ei saa hermostua. Asioiden oppiminen vie aikaa, toisilla enemmän, toisilla vähemmän. Ongelmakohdissa kannattaa jakaa ongelmaa pienempiin ongelmiin ja koittaa ratkoa ne.

Hakoulinen [03.10.2009 09:55:27]

#

Multimediaa varten kannattaa tutustua SDL, johon löytyy kattavat oppaat täältä Ohjelmointiputkastakin.

Markus [03.10.2009 11:11:36]

#

Tapsa kirjoitti:

Olen tutustunut kirjaan "Opi C++ 21 päivässä". Valitettavasti en oppinut. Ensinnäkin tuo syntaksi, jos teet pienenkin virheen joka menee vielä C++:ssa läpi saa koneen kaatumaan.

Osoittimet eivät kuulu opettelioille.

Sain aikaan tulostuksen luokkaa 2+2=4, siinä kaikki

Miten C++:lla luodaan kuvia tai jotain VB-luokan ohjelmia?

C++ on vain kieli. Kaikki "palvelut" kuten ikkunat, niiden napit ja valikot sekä grafiikan piirron tarjoaa käyttöjärjestelmä. Käyttöjärjestelmäsi tarjoaa sinulle API:n eli rajapinnan eli sarjan funktiota, joita kutsumalla voit luoda ikkunoita, piirtää grafiikkaa, soittaa ääniä, lähettää dataa verkon välityksellä jne...

Voisit tietenkin periaatteessa käyttää näytönohjainta, äänikorttia ja verkkokorttia suoraan ohjelmastasi, mutta se on paitsi hyvin hankalaa, siitä myös syntyisi hirveä soppa, kun useampi yhtä aikaa päällä oleva ohjelma tekisi samoin. Tämän takia käyttöjärjestelmä estää kaiken suoran pääsyn laitteistoon ja kaikki laitteistoa tarvitsevat asiat tulee hoitaa sen API:n kautta. Näin käyttöjärjestelmä pystyy "jakamaan" laitteiston ohjelmien kesken eli antamaan jokaiselle oman ikkunan, miksaamaan äänet jne...

Tässä toki vielä se ongelma, että jokaisella käyttöjärjestelmällä on oma erilainen API. Ohjelmastasi tulisi siis erilainen riippuen siitä mille käyttöjärjestelmälle sen teet. Näin ollen sen sijaan että käyttäisit käyttöjärjestelmäsi API:a kannattaa käyttää wrapperiä eli ulkopuolista ohjelmakirjastoa joka puolestaan käyttää käyttöjärjestelmän API:a.

Idea on, että wrapperi pysyy käyttöjärjestelmästä riippumatta aina samana ja wraperi osaa kutsua aina oikeaa käyttöjärjestelmän funktiota riippuen siitä millä käyttöjärjestelmällä se pyörii.

Yksi erittäin hyvä tällainen wrapperi kirjasto on SDL. Se tarjoaa ikkunan luonnin ja 2D grafiikan piirron, mutta ei widgettejä eli nappeja, valikoita jne.
Jos haluat widgettejä, niin suosittelen wxWidgets-kirjastoa.

3D-grafiikan ja verkkon käytön osalta tilanne on parempi, sillä kaikki (tai ainakin lähes kaikki) käyttöjärjestelmät ovat omaksuneet saman API:n. Verkko API:n nimi on "sockets" ja 3D API:n nimi on "OpenGL" (Windows tarjoaa lisäksi toisen vaihtoehtoiden saman asian ajavan 3D API:n nimeltä Direct 3D, mutta se toimii vain siis Windows käyttöjärjestelmissä).

Jalmari91 [03.10.2009 11:55:58]

#

Tapsa kirjoitti:

Olen tutustunut kirjaan "Opi C++ 21 päivässä". Valitettavasti en oppinut. Ensinnäkin tuo syntaksi, jos teet pienenkin virheen joka menee vielä C++:ssa läpi saa koneen kaatumaan.

Kannattaa lukea tuo http://norvig.com/21-days.html

Vastaus

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

Tietoa sivustosta