Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2012
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.32 KB | None | 0 0
  1. /** Ceci est le coté client
  2.  
  3. Contenu :
  4.  
  5. Todo :
  6. Dans CPlayer :
  7. => Convertisseur char to wchar_t pour le billboard...
  8. => Voir le probleme avec la Font de la GUI
  9.  
  10.     //Initialisation systeme de log
  11.     //Utilisation :
  12.     // pLog->Write("Looped: %d times!", i);
  13.     // pLog->Write("Going into our loop");
  14.     Log * pLog = new Log("log.txt");
  15.  
  16. */
  17.  
  18. //System
  19. #include "irrlicht.h"
  20. #include "irrklang.h"
  21.  
  22.  
  23. //
  24. #include "CEventReceiver.h"
  25. #include "CPlayer.h"
  26. #include "CSound.h"
  27. //#include "CCamera.h"
  28. #include "CSceneNodeAnimatorCameraRPG.h"
  29.  
  30.  
  31. #ifdef _IRR_WINDOWS_
  32. #pragma comment(lib, "libIrrlicht.a")
  33. #pragma comment(lib, "libirrKlang.a")
  34. #pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
  35. #endif
  36.  
  37. int main()
  38. {
  39.     //Creation du recepteur d'event
  40.     CEventReceiver EventReceiver;
  41.  
  42.     //Creation du device
  43.     irr::IrrlichtDevice *Irr_Device = irr::createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(800,600), 16, true, false, false, &EventReceiver);
  44.  
  45.     if(!Irr_Device)
  46.     {
  47.         return 1;
  48.     }
  49.  
  50.     //rhombicuboctaèdre
  51.     Irr_Device->setWindowCaption(L"RhombiWord");
  52.  
  53.     irr::video::IVideoDriver* VideoDriver = Irr_Device->getVideoDriver();
  54.     irr::scene::ISceneManager* SceneManager = Irr_Device->getSceneManager();
  55.     irr::gui::IGUIEnvironment* GUIEnv = Irr_Device->getGUIEnvironment();
  56.  
  57.     //Chargement de la police
  58.     irr::gui::IGUIFont* Font = GUIEnv->getFont("./media/fontcourier.bmp");
  59.  
  60.     //Logo
  61.  
  62.  
  63.     //Moteur Sond
  64.     //irrklang::ISoundEngine* SoundEngine = irrklang::createIrrKlangDevice(irrklang::ESOD_AUTO_DETECT,irrklang::ESEO_MULTI_THREADED,0);
  65.     irrklang::ISoundEngine* SoundEngine = irrklang::createIrrKlangDevice();
  66.  
  67.     if(!SoundEngine)
  68.     {
  69.         return EXIT_FAILURE;
  70.     }
  71.  
  72.     irr::scene::ISceneNode* node = SceneManager->addCubeSceneNode();
  73.     if (node)
  74.     {
  75.         node->setPosition(irr::core::vector3df(0,0,0));
  76.         node->setMaterialTexture(0, VideoDriver->getTexture("./media/t351sml.jpg"));
  77.         node->setMaterialFlag(irr::video::EMF_LIGHTING, false);
  78.         SceneManager->addBillboardTextSceneNode(Font, L"TEST", node,irr::core::dimension2d<irr::f32>(20.f, 10.0f),node->getPosition()+ irr::core::vector3df(0,10,0));
  79.     }
  80.  
  81.     irr::scene::ISceneNode* node_2 = SceneManager->addCubeSceneNode();
  82.     if (node_2)
  83.     {
  84.         node_2->setPosition(irr::core::vector3df(0,-10,0));
  85.         node_2->setMaterialTexture(0, VideoDriver->getTexture("./media/t351sml.jpg"));
  86.         node_2->setMaterialFlag(irr::video::EMF_LIGHTING, false);
  87.         SceneManager->addBillboardTextSceneNode(Font, L"node_2", node_2,irr::core::dimension2d<irr::f32>(20.f, 10.0f),node_2->getPosition()+ irr::core::vector3df(0,20,0));
  88.     }
  89.  
  90.     //Ajoute une camera
  91.     irr::scene::ICameraSceneNode* cam = SceneManager->addCameraSceneNode(0, irr::core::vector3df(0,20,-30),irr::core::vector3df(0,0,0));
  92.     //CSceneNodeAnimatorCameraTrackball *cam_animator = new CSceneNodeAnimatorCameraTrackball(VideoDriver, Irr_Device->getCursorControl(), 50,4,6);
  93.     irr::scene::CSceneNodeAnimatorCameraRPG *cam_animator = new irr::scene::CSceneNodeAnimatorCameraRPG(Irr_Device->getCursorControl());
  94.     cam->addAnimator(cam_animator);
  95.     cam_animator->drop();
  96.  
  97.     //Curseur OFF
  98.     Irr_Device->getCursorControl()->setVisible(false);
  99.  
  100.     //Son
  101.     CSound *Sound = new CSound(SoundEngine, node_2, SceneManager, 540, true);
  102.  
  103.     int lastFPS = -1;
  104.  
  105.     irr::u32 then = Irr_Device->getTimer()->getTime();
  106.  
  107.     const irr::f32 MOUV_SPEED = 5.f;
  108.  
  109.     while(Irr_Device->run())
  110.     {
  111.         const irr::u32 now = Irr_Device->getTimer()->getTime();
  112.         const irr::f32 frameDeltaTime = (irr::f32)(now - then) / 1000.f;
  113.         then = now;
  114.  
  115.         VideoDriver->beginScene(true, true, irr::video::SColor(255,100,101,140));
  116.         SceneManager->drawAll();
  117.         GUIEnv->drawAll();
  118.  
  119.         irr::core::stringw Title = "RhombiWord Driver : ";
  120.         Title += VideoDriver->getName();
  121.         Title += " FPS : ";
  122.         Title += VideoDriver->getFPS();
  123.         Irr_Device->setWindowCaption(Title.c_str());
  124.  
  125.         //cam->setTarget(node->getPosition());
  126.  
  127.         irr::core::vector3df nodePosition = irr::core::vector3df(0,0,0);
  128.  
  129.         VideoDriver->endScene();
  130.     }
  131.     SoundEngine->drop();
  132.     Irr_Device->drop();
  133.  
  134.     return EXIT_SUCCESS;
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement