From 542ae0113ac850e0d5216c7e2dc4543e66a1237f Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 18 Nov 2019 02:56:38 +0100 Subject: Added rotation, mlx_clear_window feelsgoodman --- event.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'event.c') diff --git a/event.c b/event.c index 0d6c113..ab3d12b 100644 --- a/event.c +++ b/event.c @@ -6,12 +6,15 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/15 06:39:37 by cacharle #+# #+# */ -/* Updated: 2019/11/16 12:44:15 by cacharle ### ########.fr */ +/* Updated: 2019/11/18 02:31:23 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "cub3d.h" +#define ROTATE_SIZE (M_PI / 20.0) +#define MOVE_SPEED 0.5 + int handle_key(int key, void *param) { t_state *state; @@ -21,12 +24,16 @@ int handle_key(int key, void *param) if (key == MLXK_ESC) state->running = FALSE; if (key == MLXK_A) - state->pos.x -= 0.5; + state->pos = vector_add(state->pos, vector_rotate(vector_scale(state->dir, MOVE_SPEED), M_PI_2)); if (key == MLXK_D) - state->pos.x += 0.5; + state->pos = vector_add(state->pos, vector_rotate(vector_scale(state->dir, MOVE_SPEED), -M_PI_2)); if (key == MLXK_W) - state->pos.y -= 0.5; + state->pos = vector_add(state->pos, vector_scale(state->dir, MOVE_SPEED)); if (key == MLXK_S) - state->pos.y += 0.5; + 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); return (0); } -- cgit