ParticlesGame.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. #ifndef PARTICLESGAME_H_
  2. #define PARTICLESGAME_H_
  3. #include "gameplay.h"
  4. using namespace gameplay;
  5. /**
  6. * Main game class.
  7. */
  8. class ParticlesGame: public Game, Control::Listener
  9. {
  10. public:
  11. /**
  12. * Constructor.
  13. */
  14. ParticlesGame();
  15. /**
  16. * @see Game::touchEvent
  17. */
  18. void touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex);
  19. /**
  20. * @see Game::mouseEvent
  21. */
  22. bool mouseEvent(Mouse::MouseEvent evt, int x, int y, int wheelDelta);
  23. /**
  24. * @see Game::keyEvent
  25. */
  26. void keyEvent(Keyboard::KeyEvent evt, int key);
  27. /**
  28. * @see Game::resizeEvent
  29. */
  30. void resizeEvent(unsigned int width, unsigned int height);
  31. /**
  32. * @see Control::controlEvent
  33. */
  34. void controlEvent(Control* control, EventType evt);
  35. protected:
  36. /**
  37. * @see Game::initialize
  38. */
  39. void initialize();
  40. /**
  41. * @see Game::finalize
  42. */
  43. void finalize();
  44. /**
  45. * @see Game::update
  46. */
  47. void update(float elapsedTime);
  48. /**
  49. * @see Game::render
  50. */
  51. void render(float elapsedTime);
  52. private:
  53. bool drawScene(Node* node, void* cookie);
  54. void drawSplash(void* param);
  55. void loadEmitters();
  56. void emitterChanged();
  57. void drawFrameRate(Font* font, const Vector4& color, unsigned int x, unsigned int y, unsigned int fps);
  58. std::string openFile(const char* title, const char* filterDescription, const char* filterExtension);
  59. void saveFile();
  60. void updateTexture();
  61. void updateImageControl();
  62. void updateFrames();
  63. Scene* _scene;
  64. Node* _particleEmitterNode;
  65. Node* _cameraParent;
  66. Form* _form;
  67. bool _wDown, _sDown, _aDown, _dDown;
  68. bool _touched;
  69. int _prevX, _prevY;
  70. ParticleEmitter* _particleEmitter;
  71. std::string _url;
  72. Font* _font;
  73. Slider* _startRed;
  74. Slider* _startGreen;
  75. Slider* _startBlue;
  76. Slider* _startAlpha;
  77. Slider* _endRed;
  78. Slider* _endGreen;
  79. Slider* _endBlue;
  80. Slider* _endAlpha;
  81. Slider* _startMin;
  82. Slider* _startMax;
  83. Slider* _endMin;
  84. Slider* _endMax;
  85. Slider* _energyMin;
  86. Slider* _energyMax;
  87. Slider* _emissionRate;
  88. Slider* _posVarX;
  89. Slider* _posVarY;
  90. Slider* _posVarZ;
  91. Slider* _velX;
  92. Slider* _velY;
  93. Slider* _velZ;
  94. Slider* _velVarX;
  95. Slider* _velVarY;
  96. Slider* _velVarZ;
  97. Slider* _accelX;
  98. Slider* _accelY;
  99. Slider* _accelZ;
  100. Slider* _accelVarX;
  101. Slider* _accelVarY;
  102. Slider* _accelVarZ;
  103. Slider* _spinSpeedMin;
  104. Slider* _spinSpeedMax;
  105. Slider* _axisX;
  106. Slider* _axisY;
  107. Slider* _axisZ;
  108. Slider* _axisVarX;
  109. Slider* _axisVarY;
  110. Slider* _axisVarZ;
  111. Slider* _rotationSpeedMin;
  112. Slider* _rotationSpeedMax;
  113. CheckBox* _started;
  114. Button* _reset;
  115. Button* _emit;
  116. Button* _zoomIn;
  117. Button* _zoomOut;
  118. Button* _save;
  119. Button* _load;
  120. Slider* _burstSize;
  121. Container* _position;
  122. Container* _particleProperties;
  123. CheckBox* _vsync;
  124. bool _panning;
  125. bool _rotating;
  126. bool _zooming;
  127. };
  128. #endif