diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2021-01-23 23:58:43 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2021-01-23 23:58:43 +0100 |
| commit | 2cd8461c738e857f054f4c65c0a1baf8bb9ba5b3 (patch) | |
| tree | a03ed914aacedd7cecb510b9da8cb088f565e80c /src/main.cpp | |
| parent | 953f8ffb5b1cbb732b4dac57ac9e2ec0cdebfcdf (diff) | |
Handle keyboard and mouse inputs on windows
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 42 |
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: { } |
