-
Notifications
You must be signed in to change notification settings - Fork 0
/
UserEventsHandler.h
90 lines (69 loc) · 1.68 KB
/
UserEventsHandler.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#ifndef INPUTSEVENTS_H_INCLUDED
#define INPUTSEVENTS_H_INCLUDED
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <map>
#include <boost/function.hpp>
class UserEventsHandler
{
public:
enum Key{
Up = 1,
Down,
Left,
Right,
Attack
};
enum Event{
LostFocus = 1,
GainedFocus,
MouseWheelMoved,
MouseButtonPressed,
MouseButtonReleased,
MouseButtonClicked,
MouseMoved,
MouseEntered,
MouseLeft,
TextEntered,
SfKeyPressed,
SfKeyReleased,
};
enum BoutonState{
StatePressed = 1,
StateReleased
};
UserEventsHandler(sf::RenderWindow* renderWindow);
void processEvents();
void setEventsMirror(boost::function<void (sf::Event)> mirror);
bool isSfKeyDown(sf::Keyboard::Key key);
bool isKeyDown(Key key);
bool isEventThrown(Event e);
sf::Vector2f getMousePosition();
BoutonState getMouseBoutonState(sf::Mouse::Button);
char getTextEntered();
sf::Keyboard::Key getKeyCode();
bool getKeyAlt();
bool getKeyControl();
bool getKeyShift();
bool getKeySystem();
private:
bool m_gamePaused;
std::map<Key, sf::Keyboard::Key> m_keysMap;
std::map<Event, bool> m_events;
sf::RenderWindow* m_renderWindow;
boost::function<void (sf::Event)> m_eventsMirror;
int m_mouseX;
int m_mouseY;
int m_mouseWheelDelta;
std::map<sf::Mouse::Button, bool> m_mouseButtons;
sf::Mouse::Button m_lastMouseButtonPressed;
sf::Mouse::Button m_lastMouseButtonReleased;
sf::Mouse::Button m_lastMouseButtonClicked;
char m_textEntered;
sf::Keyboard::Key m_keyCode;
bool m_keyAlt;
bool m_keyControl;
bool m_keyShift;
bool m_keySystem;
};
#endif // INPUTSEVENTS_H_INCLUDED