aboutsummaryrefslogtreecommitdiff
path: root/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'event.c')
-rw-r--r--event.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/event.c b/event.c
index 8c2049c..1458123 100644
--- a/event.c
+++ b/event.c
@@ -6,13 +6,13 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/15 06:39:37 by cacharle #+# #+# */
-/* Updated: 2020/01/11 10:10:05 by cacharle ### ########.fr */
+/* Updated: 2020/01/12 09:27:14 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "cub3d.h"
-#define ROTATE_SIZE (M_PI / 20.0)
+#define ROTATE_STEP (M_PI / 20.0)
#define MOVE_SPEED 0.25
int event_keydown(int key, void *param)
@@ -22,17 +22,21 @@ int event_keydown(int key, void *param)
state = (t_state*)param;
if (key == MLXK_ESC)
state->running = FALSE;
- if (key == MLXK_A)
- state->pos = vector_add(state->pos, vector_scale(vector_rotate(state->dir, M_PI_2), MOVE_SPEED));
- if (key == MLXK_D)
- state->pos = vector_add(state->pos, vector_scale(vector_rotate(state->dir, -M_PI_2), MOVE_SPEED));
- if (key == MLXK_W)
- state->pos = vector_add(state->pos, vector_scale(state->dir, MOVE_SPEED));
- if (key == MLXK_S)
- state->pos = vector_add(state->pos, vector_scale(state->dir, -MOVE_SPEED));
- if (key == MLXK_LEFT)
- state->dir = vector_rotate(state->dir, -ROTATE_SIZE);
- if (key == MLXK_RIGHT)
- state->dir = vector_rotate(state->dir, ROTATE_SIZE);
+ else if (key == MLXK_A)
+ state->pos = vector_add(state->pos,
+ vector_scale(vector_rotate(state->dir, M_PI_2), MOVE_SPEED));
+ else if (key == MLXK_D)
+ state->pos = vector_add(state->pos,
+ vector_scale(vector_rotate(state->dir, -M_PI_2), MOVE_SPEED));
+ else if (key == MLXK_W)
+ state->pos = vector_add(state->pos,
+ vector_scale(state->dir, MOVE_SPEED));
+ else if (key == MLXK_S)
+ state->pos = vector_add(state->pos,
+ vector_scale(state->dir, -MOVE_SPEED));
+ else if (key == MLXK_LEFT)
+ helper_rotate_player(state, -ROTATE_STEP);
+ else if (key == MLXK_RIGHT)
+ helper_rotate_player(state, ROTATE_STEP);
return (0);
}