Wait a sec. Are you using irr 0.4.1 or 0.4 or version 0.4.2?. There are some differences between them. Look here
http://irrlicht.sourceforge.net/changes.txt
Fine, now that I've cleared that, let's go on to something useful
Code: Select all
#include <irrlicht.h>
#include <wchar.h>
using namespace irr;
#pragma comment(lib, "Irrlicht.lib")
scene::ICameraSceneNode* camera = 0;
class MyEventReceiver : public IEventReceiver
{
public:
virtual bool OnEvent(SEvent event)
{
if (camera)
return camera->OnEvent(event);
return false;
}
};
int main()
{
MyEventReceiver receiver;
IrrlichtDevice *device =
createDevice(video::DT_DIRECTX8, core::dimension2d<s32>(640, 480), 16, false, false, &receiver);
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
scene::IAnimatedMesh* mesh = smgr->getMesh("whateveryormediafolder is/transport.3ds");
scene::ISceneNode* node = 0;
if (mesh)
{
node = smgr->addOctTreeSceneNode(mesh->getMesh(0));
if (node)
node->setPosition(core::vector3df(-1300,-144,-1249));
camera = smgr->addCameraSceneNodeFPS();
device->getCursorControl()->setVisible(false);
#ifdef USE_AUDIERE
if (music)
startAudiere();
#endif
int lastFPS = -1;
while(device->run())
{
driver->beginScene(true, true, video::SColor(0,100,100,100));
smgr->drawAll();
driver->endScene();
int fps = driver->getFPS();
if (lastFPS != fps)
{
wchar_t tmp[1024];
swprintf(tmp, 1024, L"Quake 3 Map Example - Irrlicht Engine (fps:%d) Triangles:%d",
fps, driver->getPrimitiveCountDrawn());
device->setWindowCaption(tmp);
lastFPS = fps;
}
}
device->drop();
return 0;
}
the above should work for 0.4.1 and 0.4. For 0.4.2 some things should be changed
#include <irrlicht.h>
#include <wchar.h>
using namespace irr;
#pragma comment(lib, "Irrlicht.lib")
scene::ICameraSceneNode* camera = 0;
class MyEventReceiver : public IEventReceiver
{
public:
virtual bool OnEvent(SEvent event)
{
if (camera)
return camera->OnEvent(event);
return false;
}
};
int main()
{
MyEventReceiver receiver;
IrrlichtDevice *device =
createDevice(video::EDT_DIRECTX8, core::dimension2d<s32>(640, 480), 16, false, false, &receiver);
video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
scene::IAnimatedMesh* mesh = smgr->getMesh("whateveryourmediafolderis/transport.3ds");
scene::ISceneNode* node = 0;
if (mesh)
{
node = smgr->addOctTreeSceneNode("transport.3ds");
if (node)
node->setPosition(core::vector3df(-1300,-144,-1249));
camera = smgr->addCameraSceneNodeFPS();
device->getCursorControl()->setVisible(false);
#ifdef USE_AUDIERE
if (music)
startAudiere();
#endif
int lastFPS = -1;
while(device->run())
{
driver->beginScene(true, true, video::SColor(0,100,100,100));
smgr->drawAll();
driver->endScene();
int fps = driver->getFPS();
if (lastFPS != fps)
{
wchar_t tmp[1024];
swprintf(tmp, 1024, L"Quake 3 Map Example - Irrlicht Engine (fps:%d) Triangles:%d",
fps, driver->getPrimitiveCountDrawn());
device->setWindowCaption(tmp);
lastFPS = fps;
}
}
device->drop();
return 0;
}
[/code]
That should work too.