example.cpp 2.1 KB

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