kellex

TestGameIrrlicht

Dec 31st, 2013
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.73 KB | None | 0 0
  1. #include <irrlicht.h>
  2. #include <driverChoice.h>
  3. #include <ISceneCollisionManager.h>
  4. #include <cstdlib>
  5.  
  6. using namespace irr;
  7. using namespace core;
  8. using namespace video;
  9. using namespace scene;
  10. using namespace io;
  11. using namespace gui;
  12.  
  13. int main(int argc, char *argv[]){
  14. /*
  15.     video::E_DRIVER_TYPE driverType=driverChoiceConsole();
  16.     if(driverType==video::EDT_COUNT){
  17.         return 1;
  18.     }
  19.  
  20.     IrrlichtDevice *device = createDevice(driverType, dimension2d<u32>(640,480),16,false);
  21. */
  22.     printf("Running Irrlicht...\n");
  23.     IrrlichtDevice *device = createDevice(video::EDT_OPENGL, dimension2d<u32>(640,480),16,false,false,false,0);
  24.     if(!device){
  25.         printf("Error with device.. !device.. exit\n");
  26.         return 1;
  27.     }
  28.  
  29.     //creates our window
  30.     device->setWindowCaption(L"Test Game 2 Irrlicht");
  31.  
  32.     //Create our video driver that manages our rendering
  33.     IVideoDriver *driver = device->getVideoDriver();
  34.     //Create our scene manager that manges the scene
  35.     ISceneManager *smgr = device->getSceneManager();
  36.  
  37.     //disable mouse
  38.     device->getCursorControl()->setVisible(false);
  39.  
  40.     //create the mesh
  41.     IAnimatedMesh *mesh = smgr->getMesh("x/terrain2.obj");
  42.     //ITerrainSceneNode* terrain = smgr->addTerrainSceneNode("x/terrain2.obj");
  43.     //terrain->setMaterialTexture(0,driver->getTexture("x/terrain.png"));
  44.     //IAnimatedMesh *mesh1 = smgr->getMesh("x/cube_mo.obj");
  45.  
  46.     if(!mesh){
  47.         device->drop();
  48.         return 1;
  49.     }
  50.  
  51.     //create animated scene
  52.     IAnimatedMeshSceneNode *node = smgr->addAnimatedMeshSceneNode(mesh);
  53.     //IAnimatedMeshSceneNode *node1 = smgr->addAnimatedMeshSceneNode(mesh1);
  54.  
  55.     if(node){
  56.         node->setScale(vector3df(10.0f));
  57.         node->setMaterialFlag(EMF_LIGHTING,false);
  58.         node->setMD2Animation(scene::EMAT_STAND);
  59.         node->setPosition(vector3df(60,48,-60));
  60.         node->setMaterialTexture(0, driver->getTexture("x/terrain.png"));
  61.         printf("Loading mesh texture %c\n", node);
  62.     }
  63.  
  64.             //Keys WASD and Space
  65.             SKeyMap keyMap[9];
  66.             keyMap[0].Action = EKA_MOVE_FORWARD;
  67.             keyMap[0].KeyCode = KEY_UP;
  68.             keyMap[1].Action = EKA_MOVE_FORWARD;
  69.             keyMap[1].KeyCode = KEY_KEY_W;
  70.  
  71.             keyMap[2].Action = EKA_MOVE_BACKWARD;
  72.             keyMap[2].KeyCode = KEY_DOWN;
  73.             keyMap[3].Action = EKA_MOVE_BACKWARD;
  74.             keyMap[3].KeyCode = KEY_KEY_S;
  75.  
  76.             keyMap[4].Action = EKA_STRAFE_LEFT;
  77.             keyMap[4].KeyCode = KEY_LEFT;
  78.             keyMap[5].Action = EKA_STRAFE_LEFT;
  79.             keyMap[5].KeyCode = KEY_KEY_A;
  80.  
  81.             keyMap[6].Action = EKA_STRAFE_RIGHT;
  82.             keyMap[6].KeyCode = KEY_RIGHT;
  83.             keyMap[7].Action = EKA_STRAFE_RIGHT;
  84.             keyMap[7].KeyCode = KEY_KEY_D;
  85.  
  86.             keyMap[8].Action = EKA_JUMP_UP;
  87.             keyMap[8].KeyCode = KEY_SPACE;
  88.  
  89. /*
  90.     if(node1){
  91.         node1->setMaterialFlag(EMF_LIGHTING,false);
  92.                 node1->setMD2Animation(scene::EMAT_STAND);
  93.                 node1->setMaterialTexture(0, driver->getTexture("x/cube_mo.png"));
  94.     }
  95. */
  96.     //creates a camera
  97.     //smgr->addCameraSceneNode(0,vector3df(0,10,40),vector3df(0,5,0));
  98.  
  99.     //ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0,100.0f,0.005f,0,0,0,true,3.f);
  100.     ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0,100.0f,0.005f,-1,keyMap,8,true);
  101.     camera->setPosition(vector3df(40,50,-60));
  102.  
  103.     //create triangle selector for terrain
  104.     //ITriangleSelector *selector = smgr->createTerrainTriangleSelector(terrain, 0);
  105.     //terrain->setTriangleSelector(selector);
  106.  
  107.     //create Collision response animator and attach it to camera
  108.     //ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(selector,camera,vector3df(60,100,60),vector3df(0,0,0),vector3df(0,50,0));
  109.     //selector->drop();
  110.     //camera->addAnimator(anim);
  111.     //anim->drop();
  112.  
  113.     while(device->run()){
  114.         driver->beginScene(true,true,SColor(255,100,101,140));
  115.         smgr->drawAll();
  116.         driver->endScene();
  117.  
  118.         int fps = driver->getFPS();
  119.     }
  120.  
  121.     device->drop();
  122.  
  123.     return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment