TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
tb_camera.hpp
1 
9 #ifndef TurtleBrains_Camera_hpp
10 #define TurtleBrains_Camera_hpp
11 
12 #include <turtle_brains/math/tb_vector.hpp>
13 
14 namespace TurtleBrains::Graphics
15 {
16 
17  class Camera;
18 
26  void SetActiveCamera(Camera& camera);
27 
35  void SetActiveCamera(Camera* camera);
36 
42 
47  class Camera
48  {
49  public:
54  {
59  };
60 
64  Camera(void);
65 
69  virtual ~Camera(void);
70 
78  void SetPosition(const float positionX, const float positionY);
79 
86  void SetPosition(const tbMath::Vector2& cameraPosition);
87 
93  const tbMath::Vector2& GetPosition(void) const;
94 
101 
107  void Update(const float deltaTime);
108 
118  void ShakeCamera(const IntensityLevel& shakeIntensity, const float shakeDuration = -1.0f);
119 
131  void SetRotation(const tbMath::Angle& cameraRotation);
132 
140  const tbMath::Angle& GetRotation(void) const;
141 
142  private:
143  tbMath::Vector2 mPosition;
144  tbMath::Vector2 mShakeOffset;
145  tbMath::Angle mRotation;
146 
147  float mShakeIntensity;
148  float mShakeDuration;
149  };
150 
151 }; /* namespace TurtleBrains::Graphics */
152 
154 
155 #endif /* TurtleBrains_Camera_hpp */
Definition: tb_camera.hpp:48
void ShakeCamera(const IntensityLevel &shakeIntensity, const float shakeDuration=-1.0f)
tbMath::Vector2 GetPositionWithShake(void) const
void SetPosition(const float positionX, const float positionY)
const tbMath::Vector2 & GetPosition(void) const
const tbMath::Angle & GetRotation(void) const
void SetPosition(const tbMath::Vector2 &cameraPosition)
void SetRotation(const tbMath::Angle &cameraRotation)
IntensityLevel
Definition: tb_camera.hpp:54
@ kLightShaking
A shake intensity level like some slight vibration from movement.
Definition: tb_camera.hpp:56
@ kMediumShaking
A shake intensity level like a small explosion.
Definition: tb_camera.hpp:57
@ kHeavyShaking
A shake intensity level like an earthquake is happening.
Definition: tb_camera.hpp:58
@ kNoShaking
A shake intensity level that cancels out any current shaking effects.
Definition: tb_camera.hpp:55
void Update(const float deltaTime)
Definition: tb_angle.hpp:38
Definition: tb_vector.hpp:99
Give the GameScene and Entities something to display, Text, Sprites and AnimatedSprites help bring th...
Camera & GetActiveCamera(void)
void SetActiveCamera(Camera &camera)