forked from annoyatron255/Game
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathInput.cpp
141 lines (108 loc) · 2.34 KB
/
Input.cpp
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <stdio.h>
#include <SDL.h>
#include "Input.h"
Input::Input() {
_speed = 3;
_espeed = 2;
_waitTime = 0;
_done = false;
_shift = false;
_up = false;
_down = false;
_left = false;
_right = false;
}
int Input::inputLoop() {
SDL_Event event;
while (SDL_PollEvent(&event)) {
/** INPUT SETTINGS */
switch (event.type) {
case SDL_QUIT: // exit if the window is closed
_done = true; // set done to true for exit
break; // end caseclearscreen(red, green, blue, s1x, s1y, s1w, s1h);
case SDL_KEYDOWN: // check for keypresses
if (event.key.keysym.sym == SDLK_ESCAPE) {
_done = true;
}
if (event.key.keysym.sym == SDLK_UP) {
_up = true;
}
if (event.key.keysym.sym == SDLK_DOWN) {
_down = true;
}
if (event.key.keysym.sym == SDLK_LEFT) {
_left = true;
}
if (event.key.keysym.sym == SDLK_RIGHT) {
_right = true;
}
//if (event.key.keysym.sym == SDLK_s) {SDL_SaveBMP(screen, "screenshots/screenshot.bmp");}
if (event.key.keysym.sym == SDLK_LSHIFT) {
if (_waitTime <= 300) {
_shift = true;
_speed = 1;
}
}
break; // end case
case SDL_KEYUP:
if (event.key.keysym.sym == SDLK_LSHIFT) {
_speed = 3;
_shift = false;
_waitTime = 0;
}
if (event.key.keysym.sym == SDLK_UP) {
_up = false;
}
if (event.key.keysym.sym == SDLK_DOWN) {
_down = false;
}
if (event.key.keysym.sym == SDLK_LEFT) {
_left = false;
}
if (event.key.keysym.sym == SDLK_RIGHT) {
_right = false;
}
break; // end case
} /** END INPUT SETTINGS */
} // end of message processing
return 0;
}
void Input::setSpeed(int speed) {
_speed = speed;
}
int Input::getSpeed() {
return _speed;
}
int Input::getESpeed() {
return _espeed;
}
void Input::incrementWaitTime() {
_waitTime++;
}
int Input::getWaitTime() {
return _waitTime;
}
void Input::setGameDone() {
_done = true;
}
bool Input::isGameDone() {
return _done;
}
void Input::setShift(bool shift) {
_shift = shift;
}
bool Input::isShiftPressed() {
return _shift;
}
bool Input::getSpriteUp() {
return _up;
}
bool Input::getSpriteDown() {
return _down;
}
bool Input::getSpriteLeft() {
return _left;
}
bool Input::getSpriteRight() {
return _right;
}