14 #ifndef __CU_KEYBOARD_POLLER_H__
15 #define __CU_KEYBOARD_POLLER_H__
18 #include <unordered_set>
19 #include <unordered_map>
28 std::size_t operator()(
const EventKeyboard::KeyCode& k)
const {
29 return (std::hash<int>()(static_cast<int>(k)));
35 #pragma mark Keyboard Poller
62 std::unordered_set<EventKeyboard::KeyCode,KeyCodeHasher>
_previous;
64 std::unordered_set<EventKeyboard::KeyCode,KeyCodeHasher>
_current;
66 std::unordered_map<EventKeyboard::KeyCode,bool,KeyCodeHasher>
_changed;
70 #pragma mark Static Methods
79 static void start(
int priority);
89 static void start(Node* node);
109 #pragma mark Keyboard State
133 bool keyDown(EventKeyboard::KeyCode code)
const {
134 return _current.find(code) != _current.end();
148 return _current.find(code) != _current.end() && _previous.find(code) == _previous.end();
162 return _current.find(code) == _current.end() && _previous.find(code) != _previous.end();
170 int keyCount()
const {
return (
int)_current.size(); }
180 const std::vector<EventKeyboard::KeyCode> keySet()
const;
183 #pragma mark Initializers
184 CC_CONSTRUCTOR_ACCESS:
202 void init(
int priority);
211 void init(Node* node);
std::unordered_set< EventKeyboard::KeyCode, KeyCodeHasher > _current
Definition: CUKeyboardPoller.h:64
std::unordered_set< EventKeyboard::KeyCode, KeyCodeHasher > _previous
Definition: CUKeyboardPoller.h:62
int keyCount() const
Definition: CUKeyboardPoller.h:170
bool keyDown(EventKeyboard::KeyCode code) const
Definition: CUKeyboardPoller.h:133
EventListenerKeyboard * _keybdListener
Definition: CUKeyboardPoller.h:57
Definition: CUKeyboardPoller.h:48
std::unordered_map< EventKeyboard::KeyCode, bool, KeyCodeHasher > _changed
Definition: CUKeyboardPoller.h:66
bool keyPressed(EventKeyboard::KeyCode code) const
Definition: CUKeyboardPoller.h:147
bool isActive() const
Definition: CUKeyboardPoller.h:115
static KeyboardPoller * _gKeyboard
Definition: CUKeyboardPoller.h:55
bool keyReleased(EventKeyboard::KeyCode code)
Definition: CUKeyboardPoller.h:161
Definition: CUKeyboardPoller.h:27
bool _active
Definition: CUKeyboardPoller.h:59