GameKit  0.0.1a
C++ gamedev tools
KeyboardHandler.hpp
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: KeyboardHandler.hpp
5  *
6  * Description:
7  *
8  * Created: 15/02/2019 15:59:40
9  *
10  * Author: Quentin Bazin, <quent42340@gmail.com>
11  *
12  * =====================================================================================
13  */
14 #ifndef GK_KEYBOARDHANDLER_HPP_
15 #define GK_KEYBOARDHANDLER_HPP_
16 
17 #include <map>
18 
20 #include "gk/core/SDLHeaders.hpp"
21 
22 namespace gk {
23 
24 class KeyboardHandler : public InputHandler {
25  public:
26  void loadKeysFromFile(const std::string &filename);
27 
28  bool isKeyPressed(GameKey key);
29 
30  SDL_Keycode getKeyCode(gk::GameKey key) { return SDL_GetKeyFromScancode(m_keys[key]); }
31  std::string getKeyName(gk::GameKey key) { return SDL_GetKeyName(getKeyCode(key)); }
32  void setKeycode(gk::GameKey key, SDL_Keycode keycode) { m_keys[key] = SDL_GetScancodeFromKey(keycode); }
33 
34  protected:
35  std::map<GameKey, SDL_Scancode> m_keys;
36 };
37 
38 } // namespace gk
39 
40 #endif // GK_KEYBOARDHANDLER_HPP_
Give access to the real time state of an input device (keyboard, gamepad, etc...) ...
std::map< GameKey, SDL_Scancode > m_keys
void setKeycode(gk::GameKey key, SDL_Keycode keycode)
void loadKeysFromFile(const std::string &filename)
std::string getKeyName(gk::GameKey key)
u32 GameKey
Alias for game key type.
SDL_Keycode getKeyCode(gk::GameKey key)
bool isKeyPressed(GameKey key)
Check if a key is pressed.