MainMenuScene.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "MainMenuScene.h"
  2. #include "Sprite.h"
  3. #include "initActor.h"
  4. #include "res.h"
  5. #include "MyButton.h"
  6. #include "GameScene.h"
  7. using namespace std;
  8. spMainMenuScene MainMenuScene::instance;
  9. MainMenuScene::MainMenuScene()
  10. {
  11. //create background
  12. spSprite sky = new Sprite;
  13. sky->setResAnim(res::ui.getResAnim("bg"));
  14. sky->attachTo(_view);
  15. /*
  16. 'initActor' is syntax sugar for
  17. spSprite logo = new Sprite;
  18. logo->setResAnim(res::ui.getResAnim("logo2")),
  19. logo->attachTo(_view);
  20. */
  21. //create logo
  22. spSprite logo = initActor(new Sprite,
  23. arg_resAnim = res::ui.getResAnim("logo2"),
  24. arg_attachTo = _view);
  25. logo->setPosition(_view->getSize() - logo->getSize());
  26. /*
  27. spSprite btn = new MyButton;
  28. btn->setResAnim(res::ui.getResAnim("play")),
  29. btn->setAnchor(Vector2(0.5f, 0.5f));
  30. btn->setPosition(_view->getSize()/2);
  31. btn->attachTo(_view);
  32. */
  33. //create play button at center
  34. spSprite btn = initActor(new MyButton,
  35. arg_name = "play",
  36. arg_resAnim = res::ui.getResAnim("play"),
  37. arg_anchor = Vector2(0.5f, 0.5f),
  38. arg_pos = _view->getSize() / 2,
  39. arg_attachTo = _view);
  40. //handle click to button
  41. btn->addEventListener(TouchEvent::CLICK, CLOSURE(this, &MainMenuScene::onEvent));
  42. //create menu button
  43. btn = initActor(new MyButton,
  44. arg_name = "exit",
  45. arg_resAnim = res::ui.getResAnim("menu"),
  46. arg_anchor = Vector2(0.5f, 0.5f),
  47. arg_attachTo = _view);
  48. //align it to top right
  49. btn->setX(_view->getWidth() - btn->getWidth() / 2);
  50. btn->setY(btn->getHeight() / 2);
  51. btn->addEventListener(TouchEvent::CLICK, CLOSURE(this, &MainMenuScene::onEvent));
  52. }
  53. void MainMenuScene::onEvent(Event* ev)
  54. {
  55. string id = ev->currentTarget->getName();
  56. if (id == "exit")
  57. {
  58. core::requestQuit();
  59. }
  60. if (id == "play")
  61. {
  62. //clicked to play button change scene
  63. changeScene(GameScene::instance);
  64. }
  65. }