aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2021-01-23 23:58:43 +0100
committerladevieq <ladevie.quentin@gmail.com>2021-01-23 23:58:43 +0100
commit2cd8461c738e857f054f4c65c0a1baf8bb9ba5b3 (patch)
treea03ed914aacedd7cecb510b9da8cb088f565e80c /src/main.cpp
parent953f8ffb5b1cbb732b4dac57ac9e2ec0cdebfcdf (diff)
Handle keyboard and mouse inputs on windows
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/main.cpp b/src/main.cpp
index d7e6462..9d4a0bf 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -72,32 +72,34 @@ int main() {
break;
}
case EVENT_TYPES::KEY_PRESS: {
- auto move_speed = 0.1;
- if (event.modifiers & MODIFIERS::SHIFT) {
- move_speed *= 10;
+ auto move_speed = 0.1f;
+ if (wnd.keyboard[KEYS::SHIFT]) {
+ move_speed *= 10.f;
}
- switch((uint8_t)event.keycode) {
- case('w'): {
- renderer.mapped_data->cam.move(renderer.mapped_data->cam.forward * move_speed);
- break;
- }
- case('s'): {
- renderer.mapped_data->cam.move(-renderer.mapped_data->cam.forward * move_speed);
- break;
- }
- case('d'): {
- renderer.mapped_data->cam.move(renderer.mapped_data->cam.right * move_speed);
- break;
- }
- case('a'): {
- renderer.mapped_data->cam.move(-renderer.mapped_data->cam.right * move_speed);
- break;
- }
+ vec3 move_vec {};
+ if (wnd.keyboard[KEYS::W]) {
+ move_vec += renderer.mapped_data->cam.forward;
}
+ if (wnd.keyboard[KEYS::S]) {
+ move_vec += -renderer.mapped_data->cam.forward;
+ }
+ if (wnd.keyboard[KEYS::D]) {
+ move_vec += renderer.mapped_data->cam.right;
+ }
+ if (wnd.keyboard[KEYS::A]) {
+ move_vec += -renderer.mapped_data->cam.right;
+ }
+
+ move_vec = move_vec.unit() * move_speed;
+
+ renderer.mapped_data->cam.move(move_vec);
+
+ break;
}
case EVENT_TYPES::MOVE: {
std::cerr << "X : " << event.x << " Y : " << event.y << std::endl;
+ break;
}
default: {
}