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ä!
Asenna allegro! Sen mukana tulee kyllä paljon esimerkkejä tosin ne ovat pelkällä C:llä. Mutta minusta tuo sopii tarkoitukseesi parhaiten.
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ä.
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
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
Mielestäni DX on hyvä, ja kun alkaa kehittyä toimii sama alusta 3D:ssäkin
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.
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/
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.
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.
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ä
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.