#include <irrlicht.h>
int main(void)
{
irr::IrrlichtDevice* device = irr::createDevice( // creation du device
irr::video::EDT_OPENGL, // API = OpenGL
irr::core::dimension2d<irr::u32>(640,480), // taille fenetre 640x480p
32); // 32 bits par pixel
irr::video::IVideoDriver* driver = // creation du driver video
device->getVideoDriver ();
irr::scene::ISceneManager* sceneManager = // creation du scene manager
device->getSceneManager ();
irr::gui::IGUIEnvironment *gui = device->getGUIEnvironment();
device->getCursorControl ()-> setVisible (false); // rend le curseur invisible
irr::scene::ISceneNode* ciel = sceneManager->addSkyBoxSceneNode(driver->getTexture("media/E060005.jpg"),
driver->getTexture("media/E060006.jpg"),
driver->getTexture("media/E060001.jpg"),
driver->getTexture("media/E060003.jpg"), // skybox
driver->getTexture("media/E060002.jpg"),
driver->getTexture("media/E060004.jpg"));
/* C'est ici que c'est important */
irr::scene::IAnimatedMeshSceneNode *plane= // cree un scene node nomme plane
sceneManager->addAnimatedMeshSceneNode ( // via le scene manager
sceneManager->getMesh ("media/plane.obj")); // en chargeant le mesh "plane.obj"
plane->setMaterialTexture(
0, driver->getTexture("media/wood_planks_01.tga"));
plane->setMaterialFlag(
irr::video::EMF_LIGHTING, false); // insensible à la lumière
plane->setPosition(irr::core::vector3df (1.0f,2.0f,1.0f));
/* Je ne comprends pas ce qu'il ne va pas */
/* CAMERA */
irr::SKeyMap keyMap[5]; // re-assigne les commandes
keyMap[0].Action = irr::EKA_MOVE_FORWARD; // avancer
keyMap[0].KeyCode = irr::KEY_KEY_Z; // z
keyMap[1].Action = irr::EKA_MOVE_BACKWARD; // reculer
keyMap[1].KeyCode = irr::KEY_KEY_S; // s
keyMap[2].Action = irr::EKA_STRAFE_LEFT; // a gauche
keyMap[2].KeyCode = irr::KEY_KEY_Q; // q
keyMap[3].Action = irr::EKA_STRAFE_RIGHT; // a droite
keyMap[3].KeyCode = irr::KEY_KEY_D; // d
keyMap[4].Action = irr::EKA_JUMP_UP; // saut
keyMap[4].KeyCode = irr::KEY_SPACE; // barre espace
sceneManager->addCameraSceneNodeFPS( // ajout de la camera FPS
0, 1000.0f, 0.1f, -1, keyMap, 3);
while(device->run ()) // la boucle de rendu
{
driver->beginScene(true, true,
irr::video::SColor (0,120,120,120));
sceneManager->drawAll();
driver->endScene ();
}
device->drop ();
return 0;
}