Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Grafiikka ja c++

Sivun loppuun

Meitsi [20.05.2004 10:29:09]

#

Ajattelin tässä tehdä ajankulukseni jonkin todella yksinkertaisen pelin/demon. Näyttötilana riittäisi aivan hyvin vaikka jokin 800x600, eli mistään "3d-räiskintä-tosihienoilla-3d-efekteillä"-pelistä ei ole kyse.

Kysymykset:
[1] Millä kirjastolla tämä kannattaisi tehdä?
[2] Miten sillä laitetaan viiva pisteestä a pisteeseen b?
[3] Millä saisin näppäimistön painallukset ohjelman käyttöön, ja millä kirjastolla se hoituu?

Ajattelin SDL:lää, OpenGL:lää ja directx:sää, mutta:
-sdl-kirjasto on niin iso, ettei sitä 56k:lla ladata.
-openGL:lää olen kokeillut, mutta se on vähän liiankin vaikeaa, ja sopii varmaan enemmän 3d:n tuottamiseen.
-directx:sää yritin kerran, mutta se oli aivan hepreaa minun koodaustaidoillani.

Joten, jos tiedätte jonkin todella helppokäyttöisen (ja pienen) kirjaston jolla tämä grafiikkajuttu onnistuu, niin kertokaa ihmeessä!

rndprogy [20.05.2004 10:37:04]

#

Asenna allegro! Sen mukana tulee kyllä paljon esimerkkejä tosin ne ovat pelkällä C:llä. Mutta minusta tuo sopii tarkoitukseesi parhaiten.

firebug [20.05.2004 12:36:40]

#

Jos haluat 2D-grafiikkaa, niin SDL tai Allegro ovat varmaan parhaimmat vaihtoehdot. 3D:n tuottamiseen sopivat sitten paremmin DirectX ja OpenGL, mutta kyllä niilläkin 2D:tä voi tehdä.

hunajavohveli [20.05.2004 12:41:45]

#

Itse käytän tuota graphics.h:ta, kunnes jaksan perehtyä Allegroon. En tiedä onko paras mahdollinen, mutta ainakin on yksinkertainen.
https://www.ohjelmointiputka.net/keskustelu/5103-graphics-h

Meitsi [20.05.2004 13:57:22]

#

Kokeilin tuota Allegroa, mutta se paketti minkä latasin sisälsi joku 700 tiedostoa. En oikein kässänny, mitä sieltä piti kopsaa tonne dev-c++:san tiedostoihin. Täytyy kokeilla tuota graphics.h:ta

kaviaari [20.05.2004 14:43:14]

#

Mielestäni DX on hyvä, ja kun alkaa kehittyä toimii sama alusta 3D:ssäkin

hunajavohveli [20.05.2004 16:27:03]

#

Meitsi kirjoitti:

Kokeilin tuota Allegroa, mutta se paketti minkä latasin sisälsi joku 700 tiedostoa. En oikein kässänny, mitä sieltä piti kopsaa tonne dev-c++:san tiedostoihin. Täytyy kokeilla tuota graphics.h:ta

Harmi vaan, että tuo ei välttämättä toimi kaikilla kääntäjillä. Turbo C:ssä se oli valmiina, mutta kun yritin portata Borlandiin, niin eipä toiminut. Tai sitten se oli graph.h, jota kokeilin ensin, joka ei toiminut, en muista.

thefox [20.05.2004 17:33:17]

#

hunajavohveli kirjoitti:

Harmi vaan, että tuo ei välttämättä toimi kaikilla kääntäjillä. Turbo C:ssä se oli valmiina, mutta kun yritin portata Borlandiin, niin eipä toiminut. Tai sitten se oli graph.h, jota kokeilin ensin, joka ei toiminut, en muista.

Se ei varmasti toimi muilla kääntäjillä kuin Turbo C:llä, joka on muuten myöskin Borlandin tuote. En tiedä mitä "Borlandilla" tarkoitat.

Mitähän Meitsi tarkoitat sillä että SDL on iso? Visual C++ 5, 6, 7 ja Mingw32 -paketit vievät tilaa ~500KB. Kyllähän tuollaisen hetkessä 56K:lla imuttelee. Katso siis http://www.libsdl.org/download-1.2.php ja "Development Libraries".

Eli koska olet Dev-C++:n kanssa liikkeessä, halunnet http://www.libsdl.org/release/SDL-devel-1.2.7-mingw32.tar.gz sekä lisäksi http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/ sivustolta SDL_gfx-kirjaston joka on tarkoitettu primitiivien (mm. viiva) piirtoon.

hunajavohveli [20.05.2004 17:37:48]

#

fawkz kirjoitti:

Se ei varmasti toimi muilla kääntäjillä kuin Turbo C:llä, joka on muuten myöskin Borlandin tuote.

Ohops, no niinpäs olikin. Tarkoitin yhtä Borlandin Windows-pohjaista kääntäjää. Olisi pitänyt kai hieman täsmentää versiota, mutta samapa tuo, jos graphics.h kerran toimii vain Turbolla.

mibe [20.05.2004 23:29:57]

#

Ensin kannattaisi opetella ohjelmoinnin perusteet kunnolla ja sitten grafiikkaohjelmoinnin perusteet gdi:stä alkaen. Sitten voisi mielestäni siirtyä muihin grafiikkakirjastoihin kuten DirectDrawiin(2D). Sitten kun on tarpeeksi räpeltänyt 2D-ympäristön kanssa voisi siirtyä 3D-ohjelmointiin.

peki [21.05.2004 08:30:21]

#

mibe kirjoitti:

muihin grafiikkakirjastoihin kuten DirectDrawiin(2D). Sitten kun on tarpeeksi räpeltänyt 2D-ympäristön kanssa voisi siirtyä 3D-ohjelmointiin.

Mielestäni 3D ohjelmointiin voi myös siirtyä suoraan, jos vaan ymmärtää matriisien ja vektoreiden päälle ja on tarpeeksi yrittämisen halua.
Tämän perustelen sillä, että esimerkiksi DirectX9 on "normaalisti" täysin 3D pohjainen rajapinta. Tosin tällä 3D:llä voi myös helposti tarvittaessa tehdä 2D:tä

Markus [21.05.2004 20:09:43]

#

mibe kirjoitti:

Ensin kannattaisi opetella ohjelmoinnin perusteet kunnolla ja sitten grafiikkaohjelmoinnin perusteet gdi:stä alkaen. Sitten voisi mielestäni siirtyä muihin grafiikkakirjastoihin kuten DirectDrawiin(2D). Sitten kun on tarpeeksi räpeltänyt 2D-ympäristön kanssa voisi siirtyä 3D-ohjelmointiin.

[1]
Tuolla Windows:sin GDI:llä voi tosiaankin tehdä yksinkertaista grafiikka, mutta DirectDraw on kuollut ja kuopattu. Jos grafiikkaa haluat välttämättä DirectX-rajapinnan kautta vääntää käytä Direct3D:tä.

Jos peliä meinaat on ainut vaihtoehto käyttää jotain 3D rajapintaa, koska ne käyttävät laitteisto kiihdytystä, joka nopeuttaa grafiikan piirron monta sataa kertaa nopeammaksi. 3D rajapinnoilla siis tosiaankin voi tehdä 2D-grafiikkaa.
Esim. OpenGL:ssä on tätä varten ihan oma "moodinsakkin". Aloittelijalle OpenGL on helpoin. Hyvin alkuun sen kanssa pääsee sivulta: nehe.gamedev.net.

[2]
glBegin(GL_LINES);
glVertex2f(ax, ay);
glVertex2f(bx, by);
glEnd();

[3]
Käsittele WM_KEYDOWN--viesti tai käytä GetAsyncKeyState()-funktiota


Sivun alkuun

Vastaus

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

Tietoa sivustosta