1. #include "ApplicationManager.h"
  2. #include "IrrlichtEngineManager.h"
  3.  
  4. ApplicationManager::ApplicationManager()
  5. {
  6. InitialiseVariables();
  7. }
  8.  
  9. ApplicationManager::~ApplicationManager()
  10. {
  11.  
  12. }
  13.  
  14. void ApplicationManager::InitialiseVariables()
  15. {
  16. model = NULL;
  17. light1 = NULL;
  18. billboard = NULL;
  19. }
  20.  
  21. void ApplicationManager::Startup()
  22. {
  23. ENGINEMANAGER.GetSceneManager()->addCameraSceneNodeFPS(
  24. NULL,
  25. 50.0f,
  26. 0.05f);
  27.  
  28. ENGINEMANAGER.GetIrrlichtDevice()->getCursorControl()->setVisible(false);
  29.  
  30. IAnimatedMesh* mesh = ENGINEMANAGER.GetSceneManager()->
  31. getMesh("../../media/ninja.b3d");
  32.  
  33. if (mesh == NULL)
  34. {
  35. ENGINEMANAGER.EndRenderLoop();
  36. return;
  37. }
  38.  
  39. model = ENGINEMANAGER.GetSceneManager()->addAnimatedMeshSceneNode(mesh);
  40. model->setPosition(vector3df(0, 0, 30));
  41.  
  42. billboard = ENGINEMANAGER.GetSceneManager()->addBillboardSceneNode(
  43. NULL,
  44. dimension2d<f32>(3, 3));
  45. billboard->setMaterialType(video::EMT_TRANSPARENT_ADD_COLOR );
  46. billboard->setMaterialTexture(0, ENGINEMANAGER.GetVideoDriver()->getTexture("../../media/particle.bmp"));
  47. billboard->setMaterialFlag(video::EMF_LIGHTING, false);
  48.  
  49. light1 = ENGINEMANAGER.GetSceneManager()->addLightSceneNode(
  50. billboard,
  51. core::vector3df(0,0,0),
  52. video::SColorf(1.0f, 0.5f, 1.0f),
  53. 800.0f);
  54.  
  55. ISceneNodeAnimator* anim = ENGINEMANAGER.GetSceneManager()->createFlyCircleAnimator(
  56. core::vector3df(0,5,30),
  57. 10.0f);
  58.  
  59. billboard->addAnimator(anim);
  60. anim->drop();
  61. }
  62.  
  63. void ApplicationManager::Shutdown()
  64. {
  65. if (model != NULL) model->remove();
  66. if (light1 != NULL) light1->remove();
  67. if (billboard != NULL) billboard->remove();
  68.  
  69. InitialiseVariables();
  70. }