sfml_impl 0.1.0
Vendor SFML 3.0.2 : IGraphic2Module / IAudioModule
Loading...
Searching...
No Matches
SfmlKeyboard.hpp
Go to the documentation of this file.
1
11#ifndef SFMLKEYBOARD_HPP_
12#define SFMLKEYBOARD_HPP_
13
14//Sfml
15#include <SFML/Window.hpp>
16
17//Interface
18#include "IKeyboard.hpp"
19
20#include <vector>
21#include <unordered_map>
22
23class SfmlWindow;
24
41class SfmlKeyboard : public graphic::IKeyboard {
42
43 public:
44 SfmlKeyboard(const SfmlWindow &window) : _window(window) {}
45
46 ~SfmlKeyboard() override = default;
47
48 std::vector<Keys> whichKeyDown() const override;
49 bool isKeyPressed(Keys key) const override;
50 bool isKeyReleased(Keys key) const override;
51 bool isKeyDown(Keys key) const override;
52 bool isKeyUp(Keys key) const override;
53
54 private:
55 const SfmlWindow &_window;
56
57 const std::unordered_map<graphic::IKeyboard::Keys, sf::Keyboard::Scancode> _keys = {
58 //line 0
59 {graphic::IKeyboard::Keys::KEY_ESCAPE, sf::Keyboard::Scancode::Escape},
60 {graphic::IKeyboard::Keys::KEY_F1, sf::Keyboard::Scancode::F1},
61 {graphic::IKeyboard::Keys::KEY_F2, sf::Keyboard::Scancode::F2},
62 {graphic::IKeyboard::Keys::KEY_F3, sf::Keyboard::Scancode::F3},
63 {graphic::IKeyboard::Keys::KEY_F4, sf::Keyboard::Scancode::F4},
64 {graphic::IKeyboard::Keys::KEY_F5, sf::Keyboard::Scancode::F5},
65 {graphic::IKeyboard::Keys::KEY_F6, sf::Keyboard::Scancode::F6},
66 {graphic::IKeyboard::Keys::KEY_F7, sf::Keyboard::Scancode::F7},
67 {graphic::IKeyboard::Keys::KEY_F8, sf::Keyboard::Scancode::F8},
68 {graphic::IKeyboard::Keys::KEY_F9, sf::Keyboard::Scancode::F9},
69 {graphic::IKeyboard::Keys::KEY_F10, sf::Keyboard::Scancode::F10},
70 {graphic::IKeyboard::Keys::KEY_F11, sf::Keyboard::Scancode::F11},
71 {graphic::IKeyboard::Keys::KEY_F12, sf::Keyboard::Scancode::F12},
72
73 //line 1
74 {graphic::IKeyboard::Keys::KEY_1, sf::Keyboard::Scancode::Num1},
75 {graphic::IKeyboard::Keys::KEY_2, sf::Keyboard::Scancode::Num2},
76 {graphic::IKeyboard::Keys::KEY_3, sf::Keyboard::Scancode::Num3},
77 {graphic::IKeyboard::Keys::KEY_4, sf::Keyboard::Scancode::Num4},
78 {graphic::IKeyboard::Keys::KEY_5, sf::Keyboard::Scancode::Num5},
79 {graphic::IKeyboard::Keys::KEY_6, sf::Keyboard::Scancode::Num6},
80 {graphic::IKeyboard::Keys::KEY_7, sf::Keyboard::Scancode::Num7},
81 {graphic::IKeyboard::Keys::KEY_8, sf::Keyboard::Scancode::Num8},
82 {graphic::IKeyboard::Keys::KEY_9, sf::Keyboard::Scancode::Num9},
83 {graphic::IKeyboard::Keys::KEY_0, sf::Keyboard::Scancode::Num0},
84 {graphic::IKeyboard::Keys::KEY_MINUS, sf::Keyboard::Scancode::Hyphen},
85 {graphic::IKeyboard::Keys::KEY_EQUAL, sf::Keyboard::Scancode::Equal},
86 {graphic::IKeyboard::Keys::KEY_BACKSPACE, sf::Keyboard::Scancode::Backspace},
87
88 //line 2
89 {graphic::IKeyboard::Keys::KEY_TAB, sf::Keyboard::Scancode::Tab},
90 {graphic::IKeyboard::Keys::KEY_Q, sf::Keyboard::Scancode::Q},
91 {graphic::IKeyboard::Keys::KEY_W, sf::Keyboard::Scancode::W},
92 {graphic::IKeyboard::Keys::KEY_E, sf::Keyboard::Scancode::E},
93 {graphic::IKeyboard::Keys::KEY_R, sf::Keyboard::Scancode::R},
94 {graphic::IKeyboard::Keys::KEY_T, sf::Keyboard::Scancode::T},
95 {graphic::IKeyboard::Keys::KEY_Y, sf::Keyboard::Scancode::Y},
96 {graphic::IKeyboard::Keys::KEY_U, sf::Keyboard::Scancode::U},
97 {graphic::IKeyboard::Keys::KEY_I, sf::Keyboard::Scancode::I},
98 {graphic::IKeyboard::Keys::KEY_O, sf::Keyboard::Scancode::O},
99 {graphic::IKeyboard::Keys::KEY_P, sf::Keyboard::Scancode::P},
100 {graphic::IKeyboard::Keys::KEY_LEFT_BRACKET, sf::Keyboard::Scancode::LBracket},
101 {graphic::IKeyboard::Keys::KEY_RIGHT_BRACKET, sf::Keyboard::Scancode::RBracket},
102
103 //line 3
104 {graphic::IKeyboard::Keys::KEY_CAPS_LOCK, sf::Keyboard::Scancode::CapsLock},
105 {graphic::IKeyboard::Keys::KEY_LEFT_CONTROL, sf::Keyboard::Scancode::LControl},
106 {graphic::IKeyboard::Keys::KEY_A, sf::Keyboard::Scancode::A},
107 {graphic::IKeyboard::Keys::KEY_S, sf::Keyboard::Scancode::S},
108 {graphic::IKeyboard::Keys::KEY_D, sf::Keyboard::Scancode::D},
109 {graphic::IKeyboard::Keys::KEY_F, sf::Keyboard::Scancode::F},
110 {graphic::IKeyboard::Keys::KEY_G, sf::Keyboard::Scancode::G},
111 {graphic::IKeyboard::Keys::KEY_H, sf::Keyboard::Scancode::H},
112 {graphic::IKeyboard::Keys::KEY_J, sf::Keyboard::Scancode::J},
113 {graphic::IKeyboard::Keys::KEY_K, sf::Keyboard::Scancode::K},
114 {graphic::IKeyboard::Keys::KEY_L, sf::Keyboard::Scancode::L},
115 {graphic::IKeyboard::Keys::KEY_SEMICOLON, sf::Keyboard::Scancode::Semicolon},
116 {graphic::IKeyboard::Keys::KEY_APOSTROPHE, sf::Keyboard::Scancode::Apostrophe},
117 {graphic::IKeyboard::Keys::KEY_BACKTICK, sf::Keyboard::Scancode::Grave},
118 {graphic::IKeyboard::Keys::KEY_ENTER, sf::Keyboard::Scancode::Enter},
119
120 //line 4
121 {graphic::IKeyboard::Keys::KEY_LEFT_SHIFT, sf::Keyboard::Scancode::LShift},
122 {graphic::IKeyboard::Keys::KEY_BACKSLASH, sf::Keyboard::Scancode::Backslash},
123 {graphic::IKeyboard::Keys::KEY_Z, sf::Keyboard::Scancode::Z},
124 {graphic::IKeyboard::Keys::KEY_X, sf::Keyboard::Scancode::X},
125 {graphic::IKeyboard::Keys::KEY_C, sf::Keyboard::Scancode::C},
126 {graphic::IKeyboard::Keys::KEY_V, sf::Keyboard::Scancode::V},
127 {graphic::IKeyboard::Keys::KEY_B, sf::Keyboard::Scancode::B},
128 {graphic::IKeyboard::Keys::KEY_N, sf::Keyboard::Scancode::N},
129 {graphic::IKeyboard::Keys::KEY_M, sf::Keyboard::Scancode::M},
130 {graphic::IKeyboard::Keys::KEY_COMMA, sf::Keyboard::Scancode::Comma},
131 {graphic::IKeyboard::Keys::KEY_PERIOD, sf::Keyboard::Scancode::Period},
132 {graphic::IKeyboard::Keys::KEY_SLASH, sf::Keyboard::Scancode::Slash},
133 {graphic::IKeyboard::Keys::KEY_RIGHT_SHIFT, sf::Keyboard::Scancode::RShift},
134
135 //line 5
136 {graphic::IKeyboard::Keys::KEY_LEFT_ALT, sf::Keyboard::Scancode::LAlt},
137 {graphic::IKeyboard::Keys::KEY_LEFT_SUPER, sf::Keyboard::Scancode::LSystem},
138 {graphic::IKeyboard::Keys::KEY_SPACE, sf::Keyboard::Scancode::Space},
139 {graphic::IKeyboard::Keys::KEY_RIGHT_ALT, sf::Keyboard::Scancode::RAlt},
140 {graphic::IKeyboard::Keys::KEY_RIGHT_SUPER, sf::Keyboard::Scancode::RSystem},
141 {graphic::IKeyboard::Keys::KEY_RIGHT_CONTROL, sf::Keyboard::Scancode::RControl},
142
143 //keypad
144 {graphic::IKeyboard::Keys::KEY_PAD_0, sf::Keyboard::Scancode::Numpad0},
145 {graphic::IKeyboard::Keys::KEY_PAD_1, sf::Keyboard::Scancode::Numpad1},
146 {graphic::IKeyboard::Keys::KEY_PAD_2, sf::Keyboard::Scancode::Numpad2},
147 {graphic::IKeyboard::Keys::KEY_PAD_3, sf::Keyboard::Scancode::Numpad3},
148 {graphic::IKeyboard::Keys::KEY_PAD_4, sf::Keyboard::Scancode::Numpad4},
149 {graphic::IKeyboard::Keys::KEY_PAD_5, sf::Keyboard::Scancode::Numpad5},
150 {graphic::IKeyboard::Keys::KEY_PAD_6, sf::Keyboard::Scancode::Numpad6},
151 {graphic::IKeyboard::Keys::KEY_PAD_7, sf::Keyboard::Scancode::Numpad7},
152 {graphic::IKeyboard::Keys::KEY_PAD_8, sf::Keyboard::Scancode::Numpad8},
153 {graphic::IKeyboard::Keys::KEY_PAD_9, sf::Keyboard::Scancode::Numpad9},
154 {graphic::IKeyboard::Keys::KEY_PAD_MINUS, sf::Keyboard::Scancode::NumpadMinus},
155 {graphic::IKeyboard::Keys::KEY_PAD_PLUS, sf::Keyboard::Scancode::NumpadPlus},
156 {graphic::IKeyboard::Keys::KEY_PAD_DOT, sf::Keyboard::Scancode::NumpadDecimal},
157 {graphic::IKeyboard::Keys::KEY_PAD_ENTER, sf::Keyboard::Scancode::NumpadEnter},
158
159 //arrows
160 {graphic::IKeyboard::Keys::KEY_UP, sf::Keyboard::Scancode::Up},
161 {graphic::IKeyboard::Keys::KEY_DOWN, sf::Keyboard::Scancode::Down},
162 {graphic::IKeyboard::Keys::KEY_LEFT, sf::Keyboard::Scancode::Left},
163 {graphic::IKeyboard::Keys::KEY_RIGHT, sf::Keyboard::Scancode::Right},
164 };
165};
166
169#endif /* !SFMLKEYBOARD_HPP_ */
Maps the contract's keys to sfml scancodes, and reads the state the window accumulated while popping ...
Definition SfmlKeyboard.hpp:41
~SfmlKeyboard() override=default
SfmlKeyboard(const SfmlWindow &window)
Definition SfmlKeyboard.hpp:44
Sfml Window class - implements IWindow2 only, sfml has no 3D.
Definition SfmlWindow.hpp:46
bool isKeyReleased(Keys key) const override
Definition SfmlWindow.hpp:287
bool isKeyDown(Keys key) const override
Definition SfmlWindow.hpp:294
bool isKeyPressed(Keys key) const override
Definition SfmlWindow.hpp:280
std::vector< Keys > whichKeyDown() const override
Definition SfmlWindow.hpp:271
bool isKeyUp(Keys key) const override
Definition SfmlWindow.hpp:295