TemplateGame.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "TemplateGame.h"
  2. // Declare our game instance
  3. TemplateGame game;
  4. TemplateGame::TemplateGame()
  5. : _scene(NULL), _wireframe(false)
  6. {
  7. }
  8. void TemplateGame::initialize()
  9. {
  10. // Load game scene from file
  11. _scene = Scene::load("res/demo.scene");
  12. // Get the box model and initialize its material parameter values and bindings
  13. Node* boxNode = _scene->findNode("box");
  14. Model* boxModel = boxNode->getModel();
  15. Material* boxMaterial = boxModel->getMaterial();
  16. // Set the aspect ratio for the scene's camera to match the current resolution
  17. _scene->getActiveCamera()->setAspectRatio(getAspectRatio());
  18. }
  19. void TemplateGame::finalize()
  20. {
  21. SAFE_RELEASE(_scene);
  22. }
  23. void TemplateGame::update(float elapsedTime)
  24. {
  25. // Rotate model
  26. _scene->findNode("box")->rotateY(MATH_DEG_TO_RAD((float)elapsedTime / 1000.0f * 180.0f));
  27. }
  28. void TemplateGame::render(float elapsedTime)
  29. {
  30. // Clear the color and depth buffers
  31. clear(CLEAR_COLOR_DEPTH, Vector4::zero(), 1.0f, 0);
  32. // Visit all the nodes in the scene for drawing
  33. _scene->visit(this, &TemplateGame::drawScene);
  34. }
  35. bool TemplateGame::drawScene(Node* node)
  36. {
  37. // If the node visited contains a model, draw it
  38. Model* model = node->getModel();
  39. if (model)
  40. {
  41. model->draw(_wireframe);
  42. }
  43. return true;
  44. }
  45. void TemplateGame::keyEvent(Keyboard::KeyEvent evt, int key)
  46. {
  47. if (evt == Keyboard::KEY_PRESS)
  48. {
  49. switch (key)
  50. {
  51. case Keyboard::KEY_ESCAPE:
  52. exit();
  53. break;
  54. }
  55. }
  56. }
  57. void TemplateGame::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
  58. {
  59. switch (evt)
  60. {
  61. case Touch::TOUCH_PRESS:
  62. _wireframe = !_wireframe;
  63. break;
  64. case Touch::TOUCH_RELEASE:
  65. break;
  66. case Touch::TOUCH_MOVE:
  67. break;
  68. };
  69. }