Advertisement
krzys_h

Poczatki Irrlicht

Sep 9th, 2011
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.42 KB | None | 0 0
  1. #include <irrlicht.h>
  2. #include <driverChoice.h>
  3.  
  4. using namespace irr;
  5.  
  6. using namespace core;
  7. using namespace scene;
  8. using namespace video;
  9. using namespace io;
  10. using namespace gui;
  11.  
  12. #pragma comment(lib, "Irrlicht.lib")
  13.  
  14. #include <iostream>
  15. using namespace std;
  16.  
  17. #define _DEBUG_INFO
  18.  
  19. int error(int errnum, const char errmsg[])
  20. {
  21.     cerr << "ERROR: " << errmsg << " (error ID: " << errnum << ")" << endl;
  22.     return errnum;
  23. }
  24.  
  25. int warning(int errnum, const char errmsg[])
  26. {
  27.     cerr << "WARNING: " << errmsg << " (error ID: " << errnum << ")" << endl;
  28.     return errnum;
  29. }
  30.  
  31. void info(const char errmsg[])
  32. {
  33.     cout << "INFO: " << errmsg << endl;
  34. }
  35.  
  36. void debug(const char errmsg[])
  37. {
  38.      #ifdef _DEBUG_INFO
  39.      cout << "DEBUG: " << errmsg << endl;
  40.      #warning "Debug info enabled! Disable it if you compiling relase version!"
  41.      #endif
  42. }
  43.  
  44. int main()
  45. {
  46.     cout << "Colonization v1.0" << endl << endl;
  47.     video::E_DRIVER_TYPE driverType=driverChoiceConsole();
  48.     if (driverType==video::EDT_COUNT) return error(1, "User not selected driver");
  49.        
  50.     IrrlichtDevice* device = createDevice(driverType, dimension2du(800, 600), 32, false, false, false, 0);
  51.            
  52.     cout << endl;
  53.  
  54.     if(!device) return error(2, "Failed to create device");
  55.     debug("Device created!");
  56.     cout << device << endl;
  57.  
  58.     device->setWindowCaption(L"Colonization");
  59.     debug("Caption set!");
  60.  
  61.     IVideoDriver* driver = device->getVideoDriver(); debug("I have VideoDriver pointer!");
  62.     ISceneManager* smgr = device->getSceneManager(); debug("I have SceneManager pointer!");
  63.     IGUIEnvironment* guienv = device->getGUIEnvironment(); debug("I have GUIEnvironment pointer!");
  64.  
  65.     guienv->addStaticText(L"Hello World! To jest test silnika Irrlicht!", rect<s32>(10,10,260,22), true);
  66.     debug("Text added!");
  67.  
  68.     IAnimatedMesh* mesh = smgr->getMesh("models/test.md2");
  69.     if (!mesh)
  70.     {
  71.         device->drop();
  72.         return error(3, "Failed to get object");
  73.     }
  74.     IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );
  75.  
  76.     if (node)
  77.     {
  78.         node->setMaterialFlag(EMF_LIGHTING, false);
  79.         node->setMD2Animation(scene::EMAT_STAND);
  80.         node->setMaterialTexture( 0, driver->getTexture("textures/test.bmp") );
  81.     } else warning(4, "Failed to get object node");
  82.  
  83.     smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));
  84.    
  85.     info("Starting the game");
  86.  
  87.     while(device->run())
  88.     {
  89.         driver->beginScene(true, true, SColor(255,100,101,140));
  90.  
  91.         smgr->drawAll();
  92.         guienv->drawAll();
  93.  
  94.         driver->endScene();
  95.     }
  96.  
  97.     device->drop();
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement