Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Pelin tekemisen alkeet C / C++

Sivun loppuun

VilleVahaaja [23.03.2007 16:43:22]

#

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.

tgunner [23.03.2007 16:46:12]

#

Suosittelen juuri tuota SDL:ää. Myöhemmin voit sitten siirtyä leikkimään OpenGL:llä. Lues toi putkan SDL-opas.

VilleVahaaja [23.03.2007 19:50:52]

#

Ok. Alan tutustumaan tuohon SDL:ään. Kiitos avusta.

moptim [23.03.2007 19:55:37]

#

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.

tgunner [24.03.2007 00:23:43]

#

^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". :)

moptim [24.03.2007 18:34:48]

#

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.

VilleVahaaja [24.03.2007 21:22:17]

#

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 ?

Lahha [24.03.2007 21:27:18]

#

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

VilleVahaaja [24.03.2007 21:35:26]

#

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

Lahha [24.03.2007 21:46:40]

#

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ä.

VilleVahaaja [24.03.2007 22:03:44]

#

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.

Lahha [24.03.2007 22:18:56]

#

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.

VilleVahaaja [24.03.2007 22:20:57]

#

Ok. Kiitos avusta.

Eiköhän tämä tästä.

VilleVahaaja [25.03.2007 12:23:49]

#

Vaihdoin linukasta linuxiin ja nyt toimii hyvin.

tgunner [25.03.2007 13:48:45]

#

VilleVahaaja kirjoitti:

Vaihdoin linukasta linuxiin ja nyt toimii hyvin.

Anteeksi?

VilleVahaaja [25.03.2007 14:42:29]

#

Vaihdoin windowsista linuksiin :D

EDIT: sain nyt toimimaan windowsissakin. No joo. Nyt harjoittelemaan


Sivun alkuun

Vastaus

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

Tietoa sivustosta