- Iniziare a lavorare con Irrlicht - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download | Chiedi sul FORUM | Glossario | Dev C++ (http://www.bloodshed.net) - un computer non troppo vecchio - l'ultima release di Irrlicht (disponibile sul sito http://irrlicht.sourceforge.net) | ||
Come iniziare a programmare videogiochi con Irrlicht | |||
PREMESSA A chi č indirizzato questo tutorial Questo tutorial č mirato per tutti coloro che per la prima volta si avvicinano al mondo del game programming 3D e non conoscono la programmazione in C++, la teoria del 3D o ancora le directx e opengl.
INSTALLAZIONE
Innanzitutto bisogna decomprimere Irrlicht (ad esempio nel percorso
"C:\"); prendere il file irrlicht.dll e installare dev C++: una volta
installato cliccare su
Salvarlo quindi con il nome di "Tutorial".
Nelle opzioni entrare nella cartella parametri e cliccare "aggiungi
libreria o oggetto" serve per aggiungere la libreria di Irlicht al
vostro progetto che si trova nel percorso
"C:\irrlicht-1.3.1\lib\win32gcc\libirrlicht.a".
Ricordare sempre di premere prima aggiungi e poi ok altrimenti si deve
rifare tutto. Ora cliccare su: Con questo passaggio č terminata la configurazione di dev C++.
COME INIZIARE In questo tutorial verranno illustrati i parametri fondamentali per creare tutto il necessario per la scena. Il codice verrā commentato passo passo (č comunque allegato il codice sorgente completo): #include <irrlicht.h> #include <iostream> Questa parte serve invece per includere i file irrlicht.h ed iostream che sono le librerie di irrlicht e del C++: using namespace irr; using namespace gui; using namespace io; using namespace scene; using namespace video; using namespace core; Queste istruzioni servono per dire al compilatore che si useranno i comandi delle varie classi (irr, gui ecc., in questo esempio in realtā non servivano tutte): int main () //questa č la funzione main del nostro progetto { video::E_DRIVER_TYPE driverType = video::EDT_DIRECT3D9; printf("Please select the driver you want for this example:\n"\ " (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n"\ " (d) Software Renderer\n (e) Burnings Software Renderer\n"\ " (f) NullDevice\n (otherKey) exit\n\n"); char i; std::cin >> i; switch(i) { case 'a': driverType = video::EDT_DIRECT3D9;break; case 'b': driverType = video::EDT_DIRECT3D8;break; case 'c': driverType = video::EDT_OPENGL; break; case 'd': driverType = video::EDT_SOFTWARE; break; case 'e': driverType = video::EDT_BURNINGSVIDEO;break; case 'f': driverType = video::EDT_NULL; break; default: return 1; } Con queste istruzioni vogliamo che il nostro gioco quando inizi chieda all'utente il driver grafico da usare (directX 8.1, directX 9.0, opengl oppure il software di render di irrlicht). A questo punto č necessario creare il device. Il device si occupa di gestire l'intera scena, immaginiamo il set di un film, il device potrebbe esserne il regista e gli altri componenti che fra poco vedremo i vari attori. IrrlichtDevice *device = createDevice(driverType, core::dimension2d<s32>(640, 480)); queste sono le dimensioni della nostra scena if (device == 0) return 1; video::IVideoDriver* driver = device->getVideoDriver(); scene::ISceneManager* smgr = device->getSceneManager(); gui::IGUIEnvironment* guienv = device->getGUIEnvironment(); Non dimentichiamo che alla fine di ogni istruzione ci va ";". Abbiamo anche creato scene manager video driver e guienvirnonment che sono i collaboratori del device. Ora abbiamo al nostra scena e ci aggiungeremo il pg sidney che saluta quando comincia il programma. IAnimatedMesh* mesh = smgr->getMesh("../../media/sydney.md2") Gli oggetti si chiamano mesh, abbiamo con questa riga detto allo scene manager (smgr) di acquisire la nostra sydney col comando getMesh (get significa prendi acquisisci) ora dovremmo aggiungere il nodo della scena che conterrā sydney (avremo modo di spiegare cos'č un nodo): IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh ); if (node) { node->setMaterialFlag(EMF_LIGHTING, false); //abbiamo eliminato la luce dinamica altrimenti la nostra scena sarebbe apparsa tutta nera node->setFrameLoop(0, 310); //con questa istruzione abbiamo animato sydney dal frame 0 al frame 310 node->setMaterialTexture( 0, driver->getTexture("../../media/sydney.bmp") ); //e con questa abbiamo aggiunto la "pelle" di sydney!! } Abbiamo usato l'istruzione If (letteralmente "se") per esser sicuri che la creazione del nodo sia avvenuta con successo altrimenti il programma avrebbe potuto dare errore. Adesso manca solo una telecamera per la nostra scena: smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); //E infine aggiungiamo il ciclo principale del nostro gioco ovvero il cuore del programma while(device->run()) { driver->beginScene(true, true, SColor(0,200,200,200)); smgr->drawAll(); guienv->drawAll(); driver->endScene(); }
Premendo F9 se tutto č andato come dovrebbe avremo il nostro primo
programma con Irrlicht HelloWorld che si trova anche nell'esempio della
cartella: |
|||
<< INDIETRO | by pubblico |