1. Irrlicth in son sürümünü aşağıdaki adresten indiriyoruz.
http://irrlicht.sourceforge.net/downloads.html
2. Zip dosyasını açıyoruz.
3. Irrlicth-x.x/include un altındaki header dosyalarının hepsini C:\Program Files\Microsoft Visual Studio 9.0\VC\include klasörüne kopyal?yoruz.
4. Visual Studio 2008 de Tool->Options->Project and Solutions->VC++ Directories kısmına aşağıdaki iki satırı ekliyoruz.
…/Irrlicth-x.x/include
…/Irrlicth-x.x/lib/Win32-visualstudio
5. Visual Studio 2008 de Project->Options->Configuration Properties->Linker->Input->Additional Dependecies kısmına aşağıdaki satırı ekliyoruz.
Irrlicht.lib
6. Yeni bir proje oluşturuyoruz.
7. Irrlicth in header dosyalarını projemizin header kısmına ekliyoruz.
…\irrlicht-x.x\include altındaki bütün dosyaları ekliyoruz.
8. Source folder ina yeni bir cpp dosyası ekleyip aşağıdaki kodu ekliyoruz.
#include <irrlicht.h>
#include <iostream>
using namespace irr;
#ifdef _MSC_VER
#pragma comment(lib, "Irrlicht.lib")
#endif
int main()
{
// ask user for driver
video::E_DRIVER_TYPE driverType;
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) Burning's 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;
}
// create device and exit if creation failed
IrrlichtDevice *device =
createDevice(driverType, core::dimension2d<u32>(640, 480));
if (device == 0)
return 1; // could not create selected driver.
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
device->getFileSystem()->addZipFileArchive("C:/Users/Ugur/Desktop/irrlicht-1.6/media/map-20kdm2.pk3");
scene::IAnimatedMesh* mesh = smgr->getMesh("20kdm2.bsp");
scene::ISceneNode* node = 0;
if (mesh)
node = smgr->addOctTreeSceneNode(mesh->getMesh(0), 0, -1, 1024);
// node = smgr->addMeshSceneNode(mesh->getMesh(0));
if (node)
node->setPosition(core::vector3df(-1300,-144,-1249));
smgr->addCameraSceneNodeFPS();
device->getCursorControl()->setVisible(false);
int lastFPS = -1;
while(device->run())
{
if (device->isWindowActive())
{
driver->beginScene(true, true, video::SColor(255,200,200,200));
smgr->drawAll();
driver->endScene();
int fps = driver->getFPS();
if (lastFPS != fps)
{
core::stringw str = L"Irrlicht Engine - Quake 3 Map example [";
str += driver->getName();
str += "] FPS:";
str += fps;
device->setWindowCaption(str.c_str());
lastFPS = fps;
}
}
else
device->yield();
}
device->drop();
return 0;
}
9. Projeyi build ettiğimz zaman Quake 3 in bir haritası açılacaktır.
Uğur Dönmez
METU CENG