2
0

TemplateGame.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "TemplateGame.h"
  2. // Declare our game instance
  3. TemplateGame game;
  4. TemplateGame::TemplateGame()
  5. : _scene(NULL)
  6. {
  7. }
  8. void TemplateGame::initialize()
  9. {
  10. // Load game scene from file
  11. Package* pkg = Package::create("res/box.gpb");
  12. _scene = pkg->loadScene();
  13. SAFE_RELEASE(pkg);
  14. // Get light node
  15. Node* lightNode = _scene->findNode("directionalLight");
  16. Light* light = lightNode->getLight();
  17. // Initialize box model
  18. Node* boxNode = _scene->findNode("box");
  19. Model* boxModel = boxNode->getModel();
  20. Material* boxMaterial = boxModel->setMaterial("res/box.material");
  21. boxMaterial->getParameter("u_lightColor")->setValue(light->getColor());
  22. boxMaterial->getParameter("u_lightDirection")->setValue(lightNode->getForwardVectorView());
  23. }
  24. void TemplateGame::finalize()
  25. {
  26. SAFE_RELEASE(_scene);
  27. }
  28. void TemplateGame::update(long elapsedTime)
  29. {
  30. // Rotate model
  31. _scene->findNode("box")->rotateY(MATH_DEG_TO_RAD((float)elapsedTime / 1000.0f * 180.0f));
  32. }
  33. void TemplateGame::render(long elapsedTime)
  34. {
  35. // Clear the color and depth buffers
  36. clear(CLEAR_COLOR_DEPTH, Vector4::zero(), 1.0f, 0);
  37. // Visit all the nodes in the scene for drawing
  38. _scene->visit(this, &TemplateGame::drawScene);
  39. }
  40. bool TemplateGame::drawScene(Node* node, void* cookie)
  41. {
  42. // If the node visited contains a model, draw it
  43. Model* model = node->getModel();
  44. if (model)
  45. {
  46. model->draw();
  47. }
  48. return true;
  49. }
  50. void TemplateGame::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
  51. {
  52. switch (evt)
  53. {
  54. case Touch::TOUCH_PRESS:
  55. break;
  56. case Touch::TOUCH_RELEASE:
  57. break;
  58. case Touch::TOUCH_MOVE:
  59. break;
  60. };
  61. }