FPSSystem.h 929 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "Types.h"
  3. #include "Camera.h"
  4. #include "Vec2.h"
  5. #include "Mouse.h"
  6. #include "Keyboard.h"
  7. #include "Touch.h"
  8. #include "Accelerometer.h"
  9. namespace crown
  10. {
  11. /// TODO: set_view_by_cursor must be implemented through scripting
  12. class FPSSystem : public MouseListener, public KeyboardListener, public AccelerometerListener
  13. {
  14. public:
  15. /// Constructor
  16. FPSSystem(MovableCamera* camera);
  17. void set_camera(MovableCamera* camera);
  18. MovableCamera* get_camera();
  19. void camera_render();
  20. void set_view_by_cursor();
  21. virtual void key_pressed(const KeyboardEvent& event);
  22. virtual void key_released(const KeyboardEvent& event);
  23. virtual void accelerometer_changed(const AccelerometerEvent& event);
  24. private:
  25. real m_angle_x;
  26. real m_angle_y;
  27. bool m_up_pressed : 1;
  28. bool m_right_pressed : 1;
  29. bool m_down_pressed : 1;
  30. bool m_left_pressed : 1;
  31. MovableCamera* m_camera;
  32. };
  33. } // namespace crown