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
15 {
16  namespace Graphics
17  {
18 
19  class Camera;
20 
28  void SetActiveCamera(Camera& camera);
29 
37  void SetActiveCamera(Camera* camera);
38 
43  Camera& GetActiveCamera(void);
44 
49  class Camera
50  {
51  public:
56  {
61  };
62 
66  Camera(void);
67 
71  virtual ~Camera(void);
72 
79  void SetPosition(const tbMath::Vector2& cameraPosition);
80 
86  const tbMath::Vector2& GetPosition(void) const;
87 
94 
100  void Update(const float deltaTime);
101 
111  void ShakeCamera(const IntensityLevel& shakeIntensity, const float shakeDuration = -1.0f);
112 
124  void SetRotation(const float cameraRotation);
125 
133  float GetRotation(void) const;
134 
135  private:
136  tbMath::Vector2 mPosition;
137  tbMath::Vector2 mShakeOffset;
138  float mRotation;
139 
140  float mShakeIntensity;
141  float mShakeDuration;
142  };
143 
144  }; /* namespace Graphics */
145 }; /* namespace TurtleBrains */
146 
148 
149 #endif /* TurtleBrains_Camera_hpp */
void SetRotation(const float cameraRotation)
Definition: tb_vector.hpp:48
const tbMath::Vector2 & GetPosition(void) const
A shake intensity level like some slight vibration from movement.
Definition: tb_camera.hpp:58
void SetPosition(const tbMath::Vector2 &cameraPosition)
Give the GameScene and Entities something to display, Text, Sprites and AnimatedSprites help bring th...
IntensityLevel
Definition: tb_camera.hpp:55
Here is some information about the primary namespace.
Definition: tb_application_dialog.hpp:21
void ShakeCamera(const IntensityLevel &shakeIntensity, const float shakeDuration=-1.0f)
A shake intensity level like a small explosion.
Definition: tb_camera.hpp:59
Definition: tb_camera.hpp:49
void SetActiveCamera(Camera &camera)
Camera & GetActiveCamera(void)
A shake intensity level like an earthquake is happening.
Definition: tb_camera.hpp:60
float GetRotation(void) const
A shake intensity level that cancels out any current shaking effects.
Definition: tb_camera.hpp:57
tbMath::Vector2 GetPositionWithShake(void) const
void Update(const float deltaTime)