Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <irrlicht.h>
- #include <driverChoice.h>
- #include <ISceneCollisionManager.h>
- #include <cstdlib>
- using namespace irr;
- using namespace core;
- using namespace video;
- using namespace scene;
- using namespace io;
- using namespace gui;
- int main(int argc, char *argv[]){
- /*
- video::E_DRIVER_TYPE driverType=driverChoiceConsole();
- if(driverType==video::EDT_COUNT){
- return 1;
- }
- IrrlichtDevice *device = createDevice(driverType, dimension2d<u32>(640,480),16,false);
- */
- printf("Running Irrlicht...\n");
- IrrlichtDevice *device = createDevice(video::EDT_OPENGL, dimension2d<u32>(640,480),16,false,false,false,0);
- if(!device){
- printf("Error with device.. !device.. exit\n");
- return 1;
- }
- //creates our window
- device->setWindowCaption(L"Test Game 2 Irrlicht");
- //Create our video driver that manages our rendering
- IVideoDriver *driver = device->getVideoDriver();
- //Create our scene manager that manges the scene
- ISceneManager *smgr = device->getSceneManager();
- //disable mouse
- device->getCursorControl()->setVisible(false);
- //create the mesh
- IAnimatedMesh *mesh = smgr->getMesh("x/terrain2.obj");
- //ITerrainSceneNode* terrain = smgr->addTerrainSceneNode("x/terrain2.obj");
- //terrain->setMaterialTexture(0,driver->getTexture("x/terrain.png"));
- //IAnimatedMesh *mesh1 = smgr->getMesh("x/cube_mo.obj");
- if(!mesh){
- device->drop();
- return 1;
- }
- //create animated scene
- IAnimatedMeshSceneNode *node = smgr->addAnimatedMeshSceneNode(mesh);
- //IAnimatedMeshSceneNode *node1 = smgr->addAnimatedMeshSceneNode(mesh1);
- if(node){
- node->setScale(vector3df(10.0f));
- node->setMaterialFlag(EMF_LIGHTING,false);
- node->setMD2Animation(scene::EMAT_STAND);
- node->setPosition(vector3df(60,48,-60));
- node->setMaterialTexture(0, driver->getTexture("x/terrain.png"));
- printf("Loading mesh texture %c\n", node);
- }
- //Keys WASD and Space
- SKeyMap keyMap[9];
- keyMap[0].Action = EKA_MOVE_FORWARD;
- keyMap[0].KeyCode = KEY_UP;
- keyMap[1].Action = EKA_MOVE_FORWARD;
- keyMap[1].KeyCode = KEY_KEY_W;
- keyMap[2].Action = EKA_MOVE_BACKWARD;
- keyMap[2].KeyCode = KEY_DOWN;
- keyMap[3].Action = EKA_MOVE_BACKWARD;
- keyMap[3].KeyCode = KEY_KEY_S;
- keyMap[4].Action = EKA_STRAFE_LEFT;
- keyMap[4].KeyCode = KEY_LEFT;
- keyMap[5].Action = EKA_STRAFE_LEFT;
- keyMap[5].KeyCode = KEY_KEY_A;
- keyMap[6].Action = EKA_STRAFE_RIGHT;
- keyMap[6].KeyCode = KEY_RIGHT;
- keyMap[7].Action = EKA_STRAFE_RIGHT;
- keyMap[7].KeyCode = KEY_KEY_D;
- keyMap[8].Action = EKA_JUMP_UP;
- keyMap[8].KeyCode = KEY_SPACE;
- /*
- if(node1){
- node1->setMaterialFlag(EMF_LIGHTING,false);
- node1->setMD2Animation(scene::EMAT_STAND);
- node1->setMaterialTexture(0, driver->getTexture("x/cube_mo.png"));
- }
- */
- //creates a camera
- //smgr->addCameraSceneNode(0,vector3df(0,10,40),vector3df(0,5,0));
- //ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0,100.0f,0.005f,0,0,0,true,3.f);
- ICameraSceneNode* camera = smgr->addCameraSceneNodeFPS(0,100.0f,0.005f,-1,keyMap,8,true);
- camera->setPosition(vector3df(40,50,-60));
- //create triangle selector for terrain
- //ITriangleSelector *selector = smgr->createTerrainTriangleSelector(terrain, 0);
- //terrain->setTriangleSelector(selector);
- //create Collision response animator and attach it to camera
- //ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(selector,camera,vector3df(60,100,60),vector3df(0,0,0),vector3df(0,50,0));
- //selector->drop();
- //camera->addAnimator(anim);
- //anim->drop();
- while(device->run()){
- driver->beginScene(true,true,SColor(255,100,101,140));
- smgr->drawAll();
- driver->endScene();
- int fps = driver->getFPS();
- }
- device->drop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment