TurtleBrains  0.3.1
High quality, portable, C++ framework for rapid 2D game development.
tb_input_action.h
1 
9 #ifndef _TurtleBrainsUnstable_InputAction_h_
10 #define _TurtleBrainsUnstable_InputAction_h_
11 
12 #include "../application/tb_application_input.h"
13 #include "../math/tb_vector.h"
14 
15 #include <vector>
16 
17 namespace TurtleBrains
18 {
19  namespace Game
20  {
21  namespace Input
22  {
30  bool IsKeyPressed(const tbApplication::Key& key);
31 
39  bool IsKeyReleased(const tbApplication::Key& key);
40 
47  bool IsKeyDown(const tbApplication::Key& key);
48 
56  void GetMousePosition(int* mouseX, int* mouseY);
57 
61  tbMath::Vector2 GetMousePosition(void);
62 
70  bool GetMouseMovement(int* mouseX, int* mouseY);
71 
76  tbMath::Vector2 GetMouseMovement(void);
77 
85  void SetMousePosition(int mouseX, int mouseY);
86 
96  void SetMousePosition(const tbMath::Vector2& mousePosition);
97  };
98 
104  {
105  public:
109  InputAction(void);
110 
116  explicit InputAction(const tbApplication::Key& keyBinding);
117 
121  ~InputAction(void);
122 
127  bool IsDown(void) const;
128 
138  bool IsPressed(void) const;
139 
149  bool IsReleased(void) const;
150 
155  void ClearBindings(void);
156 
163  void AddBinding(const tbApplication::Key& keyBinding);
164 
170  void RemoveBinding(const tbApplication::Key& keyBinding);
171 
182  static void UpdateActionOnSimulate(bool onSimulateStep = true);
183 
184  private:
185  typedef std::vector<tbApplication::Key> KeyContainer;
186  KeyContainer mKeyBindings; //Not in any specific order.
187  };
188 
189  }; /* namespace Game */
190 }; /* namespace TurtleBrains */
191 
192 namespace tbGame = TurtleBrains::Game;
193 
194 #endif /* _TurtleBrainsUnstable_InputAction_h_ */
Definition: tb_vector.h:47
Definition: tb_input_action.h:103
Here is some information about the primary namespace.
Definition: tb_application_dialog.h:21
Key
Definition: tb_application_input.h:24
static void UpdateActionOnSimulate(bool onSimulateStep=true)
void RemoveBinding(const tbApplication::Key &keyBinding)
void AddBinding(const tbApplication::Key &keyBinding)
This is the heart of TurtleBrains for game developers to create GameScenes and Entities to interact w...