Hei,
Olen harrastanut ohjelmointia n. 5 vuotta, mutta en ole koskaan kokeillut ohjelmoida pelejä tai grafiikkaa. Ohjelmoinnin perusteet on hyvässä hallussa, mutta siihen se jääkin. Ohjelmointia olen harrastanut lähinnä C:llä ja Perlillä.
Olisin kiinnostunut tekemään jonkinlaisen sovelluksen, missä olisi grafiikkaa.
Esimerkiksi sovelluksen, missä olisi kenttä (vrt. Areenan taistelu kenttä), jossa pystyisin liikuttamaan jotain graaffista palikkaa (vaikkapa piirtämäni ukkoa). Ei mitään tuon kompleksisempaa.
Nyt tarvitsisin tietoa, että mitä minun on osattava, jotta pystyisin tekemään tuon. Tarviiko siihen SDL:ää OpenGL:ää vai mitä ?
Ohjelmointi tapahtuisi C:llä / C++:lla.
Mistä kannattaisi lähteä liikkeelle, jos olen tekemässä yo. sovellusta ?
Olisiko jossain opas tms, missä tehtäisiin jokin yo. tapainen pieni sovellus C/C++:lla ?
Kaikki apu on tarpeen.
Kiitos.
Suosittelen juuri tuota SDL:ää. Myöhemmin voit sitten siirtyä leikkimään OpenGL:llä. Lues toi putkan SDL-opas.
Ok. Alan tutustumaan tuohon SDL:ään. Kiitos avusta.
Ja SDL:n ja OpenGL:n voi liittää yhteen, jolloin tulos on 24/7-dataaja. ;)
No joo, ne menevät mainiosti yhteen. Ite asiassa niiden yhteiskäytöstä on opaskin.
^Silti en suosittelisi aivan heti siirtymään niiden yhteiskäyttöön, kun aloittelevalla pelintekijällä ei ole varmaankaan vielä aivan niin kovia vaatimuksia grafiikoiltaan, että OpenGL:n hienouksia pitäisi kaivella. SDL:n jutskat riittävät alkuun mainiosti ja onhan se aina hyvä tietää asioiden muodostuminen ja toimintatavat ennen siirtymistä suurempiin "apupyöräkirjastoihin". :)
No tietystikin. Mutta ainakin minä en etsisi edes SDL_BlitSurfaceista ym. konstia, miten kuvan voi kääntää (oglilla vaan teksturoit suorakulmion, jonka kulmat olet tietenkin laskenut niin, että hässäkkä on kääntynyt). Mutta joo, kantsii eka perehtyä SDL:ään.
No niin.
Nyt tuli heti hiukan ongelmia vastaan. Ei koodin suhteen vain asennusten kanssa.
Elikkäs.
Hain Microsoft Visual C++ 2005 Express Editionin sekä
SDL kehitystyökalut ja Microsoft platform SDK työkalut.
Nyt hain netistä valmiin esimerkin, jolla voisin kokeilla toimiiko SDL, mutta käännöksessä tulee virheilmoitus:
c:\sdl\include\testi3\testi3\testi3.cpp(5) : fatal error C1083: Cannot open include file: 'SDL.h': No such file or directory
Voin options->Projects and Solution->VC++ directories kohdasta lisätä hakemistoja joista voisi löytyä (include, lib, executeble filejä) mutta minkä polun lisäisin, jotta tämä SDL.h löytyisi?
Kokeilin lisätä esim C:/SDL, C:/SDL/include C:/SDL/ C:/SDL/lib mutta saan kokoajan samaa herjaa.
Olisiko tietoa, miten saisin ongelman ratkaistua ?
Missä kansiossa sun SDL.h on?
Jos se on tolla C:\SDL\include\SDL\
Niin laita include directoreihin C:\SDL\include
Ja sitten sitten includaat #include <SDL\SDL.h>
Lib directoreihin lisää C:\SDL\lib
Itselläni se on D:\Ohjelmointi\SDL\include\SDL\SDL.h
joten include directoreissa on D:\Ohjelmointi\SDL\include
Jeps. Kiitos olin vain huolimaton. Polkun oli hiukan väärä.
Ei taida olla asetuksen ihan kohdallaan. Sain "muutaman" virhe-ilmoituksen taas.
Linking... // Mod. siisti tästä monta muuta 'unresolved external' -valitusta... testi3.obj : error LNK2019: unresolved external symbol _SDL_Init referenced in function _SDL_main MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup C:\SDL\include\testi3\Debug\testi3.exe : fatal error LNK1120: 9 unresolved externals
Muistitko laittaa
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL.lib")
Ja sitten projektin asetuksista Runtime Library Multi-threaded DLL
Nuo pragmat kannattaa laittaa suoraan SDL.h:n niin ei tartte joka projektii niitä erikseen lisätä.
No nyt melkein jo pelittää.
Kun debuggaan menee koneen ruutu mustaksi ja jumittaa siihen.
Virheitä tulee vielä seuraavasti:
'testi3.exe': Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded. 'testi3.exe': Loaded 'C:\WINDOWS\system32\wintrust.dll', No symbols loaded. 'testi3.exe': Loaded 'C:\WINDOWS\system32\crypt32.dll', No symbols loaded. 'testi3.exe': Loaded 'C:\WINDOWS\system32\msasn1.dll', No symbols loaded. 'testi3.exe': Loaded 'C:\WINDOWS\system32\imagehlp.dll', No symbols loaded. The thread 'Win32 Thread' (0x1798) has exited with code 0 (0x0). 'testi3.exe': Unloaded 'C:\WINDOWS\system32\ddraw.dll' 'testi3.exe': Unloaded 'C:\WINDOWS\system32\dciman32.dll' 'testi3.exe': Unloaded 'C:\WINDOWS\system32\dinput.dll' 'testi3.exe': Unloaded 'C:\WINDOWS\system32\setupapi.dll' 'testi3.exe': Unloaded 'C:\WINDOWS\system32\hid.dll' The program '[4288] testi3.exe: Native' has exited with code 0 (0x0).
Mutta ainakin hakemistoon testi3/debug on syntynyt sovellus testi3 mutta tuo kun ajan sen sieltä, niin tapahtuu sama. Koneen ruutu mustaksi eikä muuta.
Jos ohjelma tarttee jotain tiedostoja toimiakseen niin laita Projektin asetuksista Working directory sinne missä ne tiedostot on.
Muuten en osaa tässä neuvoo kun tuota debuggia käytä. Käännä aina release version ja ajan ohjelman kuvakkeesta.
Ok. Kiitos avusta.
Eiköhän tämä tästä.
Vaihdoin linukasta linuxiin ja nyt toimii hyvin.
VilleVahaaja kirjoitti:
Vaihdoin linukasta linuxiin ja nyt toimii hyvin.
Anteeksi?
Vaihdoin windowsista linuksiin :D
EDIT: sain nyt toimimaan windowsissakin. No joo. Nyt harjoittelemaan
Aihe on jo aika vanha, joten et voi enää vastata siihen.