example.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #include "oxygine-framework.h"
  2. #include "oxygine-flow.h"
  3. using namespace oxygine;
  4. class MyDialog : public flow::Scene
  5. {
  6. public:
  7. MyDialog()
  8. {
  9. setName("MyDialog");
  10. _dialog = true;
  11. spBox9Sprite view = new Box9Sprite;
  12. _view = view;
  13. _view->setSize(400, 300);
  14. _view->attachTo(_holder);
  15. _view->setPosition(_holder->getSize() / 2 - _view->getSize() / 2);
  16. spButton btn = new Button;
  17. btn->setPosition(120, 200);
  18. btn->attachTo(_view);
  19. btn->addEventListener(TouchEvent::CLICK, [ = ](Event*)
  20. {
  21. finish();
  22. });
  23. flow::TransitionMove::assign(this);
  24. addEventListener(EVENT_PRE_SHOWING, [ = ](Event*)
  25. {
  26. view->setColor(Color(rand() % 255, rand() % 255, rand() % 255, 255));
  27. });
  28. addEventListener(EVENT_POST_SHOWING, [ = ](Event*)
  29. {
  30. view->addTween(Sprite::TweenColor(Color::White), 300);
  31. });
  32. addEventListener(EVENT_BACK, [ = ](Event*)
  33. {
  34. finish();
  35. });
  36. }
  37. spActor _view;
  38. };
  39. class MyScene : public flow::Scene
  40. {
  41. public:
  42. MyScene()
  43. {
  44. setName("MyScene");
  45. _view = new Box9Sprite;
  46. _view->setSize(_holder->getSize());
  47. _view->attachTo(_holder);
  48. spButton btn = new Button;
  49. btn->setPosition(_view->getSize() / 2 - btn->getSize() / 2);
  50. btn->attachTo(_view);
  51. btn->addEventListener(TouchEvent::CLICK, [ = ](Event*)
  52. {
  53. flow::show(new MyDialog, [ = ](Event*)
  54. {
  55. //finish();
  56. logs::messageln("dialog closed");
  57. });
  58. });
  59. }
  60. spActor _view;
  61. };
  62. void example_preinit()
  63. {
  64. }
  65. void example_init()
  66. {
  67. //initialize oxygine_flow
  68. flow::init();
  69. //create scene and display it
  70. flow::show(new MyScene, [](Event * event)
  71. {
  72. logs::messageln("scene closed");
  73. });
  74. }
  75. void example_update()
  76. {
  77. //update oxygine-flow each frame
  78. flow::update();
  79. }
  80. void example_destroy()
  81. {
  82. //free oxygine-flow
  83. flow::free();
  84. }