diff options
Diffstat (limited to 'src/input.c')
| -rw-r--r-- | src/input.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/input.c b/src/input.c index 68722e7..54ae199 100644 --- a/src/input.c +++ b/src/input.c @@ -1,5 +1,8 @@ #include "input.h" +#include "camera.h" +#include "cglm/types.h" #include "pthread.h" +#include <SDL2/SDL_events.h> pthread_t input_init(struct engine* engine) { pthread_t thread; @@ -18,5 +21,29 @@ void input_handle(struct engine *engine) { if (event.type == SDL_QUIT) { engine->game_loop = 0; } + if (event.type == SDL_KEYDOWN) { + SDL_KeyboardEvent key = event.key; + vec3 ahead = { 0.0f, 0.0f, -1.0f }; + vec3 behind = { 0.0f, 0.0f, 1.0f }; + vec3 left = { -1.0f, 0.0f, 0.0f }; + vec3 right = { 1.0f, 0.0f, 0.0f }; + switch (key.keysym.sym) { + case SDLK_w: + camera_move(engine->camera, ahead); + break; + case SDLK_a: + camera_move(engine->camera, left); + break; + case SDLK_s: + camera_move(engine->camera, behind); + break; + case SDLK_d: + camera_move(engine->camera, right); + break; + case SDLK_ESCAPE: + engine->game_loop = 0; + break; + } + } } } |
