summaryrefslogtreecommitdiff
path: root/src/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/input.c')
-rw-r--r--src/input.c27
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;
+ }
+ }
}
}