GameKit
0.0.1a
C++ gamedev tools
source
core
input
InputHandler.cpp
Go to the documentation of this file.
1
/*
2
* =====================================================================================
3
*
4
* Filename: InputHandler.cpp
5
*
6
* Description:
7
*
8
* Created: 17/01/2018 19:10:34
9
*
10
* Author: Quentin Bazin, <quent42340@gmail.com>
11
*
12
* =====================================================================================
13
*/
14
#include "
gk/core/input/InputHandler.hpp
"
15
#include "
gk/core/GameClock.hpp
"
16
17
namespace
gk
{
18
19
bool
InputHandler::isKeyPressedOnce
(
GameKey
key) {
20
if
(
isKeyPressed
(key)) {
21
if
(!
m_keysPressedOnce
[key]) {
22
m_keysPressedOnce
[key] =
true
;
23
return
true
;
24
}
else
{
25
return
false
;
26
}
27
}
else
{
28
m_keysPressedOnce
[key] =
false
;
29
return
false
;
30
}
31
}
32
33
bool
InputHandler::isKeyPressedWithDelay
(
GameKey
key,
u16
delay) {
34
if
(
isKeyPressed
(key) &&
GameClock::getTicks
() -
m_lastTimePressed
[key] > delay) {
35
m_lastTimePressed
[key] =
GameClock::getTicks
();
36
return
true
;
37
}
else
{
38
if
(!
isKeyPressed
(key))
m_lastTimePressed
[key] = 0;
39
return
false
;
40
}
41
}
42
43
void
InputHandler::addKey
(
GameKey
key) {
44
m_keysPressed
[key] =
false
;
45
m_keysPressedOnce
[key] =
false
;
46
m_lastTimePressed
[key] = 0;
47
}
48
49
}
// namespace gk
50
GameClock.hpp
InputHandler.hpp
gk
Definition:
AudioPlayer.hpp:21
u16
unsigned short u16
Definition:
IntTypes.hpp:22
gk::InputHandler::isKeyPressedWithDelay
virtual bool isKeyPressedWithDelay(GameKey key, u16 delay)
Check if a key is pressed with delay.
Definition:
InputHandler.cpp:33
gk::InputHandler::m_keysPressed
std::map< GameKey, bool > m_keysPressed
Keys state.
Definition:
InputHandler.hpp:84
gk::InputHandler::isKeyPressedOnce
virtual bool isKeyPressedOnce(GameKey key)
Check if a key is pressed only one time.
Definition:
InputHandler.cpp:19
gk::InputHandler::isKeyPressed
virtual bool isKeyPressed(GameKey key)
Check if a key is pressed.
Definition:
InputHandler.hpp:41
gk::InputHandler::m_lastTimePressed
std::map< GameKey, u32 > m_lastTimePressed
Keys state for isKeyPressedWithDelay.
Definition:
InputHandler.hpp:86
gk::InputHandler::m_keysPressedOnce
std::map< GameKey, bool > m_keysPressedOnce
Keys state for isKeyPressedOnce.
Definition:
InputHandler.hpp:85
gk::GameKey
u32 GameKey
Alias for game key type.
Definition:
InputHandler.hpp:23
gk::GameClock::getTicks
static u32 getTicks(bool realTime=false)
Definition:
GameClock.cpp:21
gk::InputHandler::addKey
void addKey(GameKey key)
Add a new key to this input handler.
Definition:
InputHandler.cpp:43
Generated by
1.8.12