diff options
| author | Dominik Kaiser | 2024-06-10 16:39:55 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2024-06-10 16:39:55 +0200 |
| commit | ff7d60ad044e98e1e2e14170b5804d141856a949 (patch) | |
| tree | dd896d064a49bb399b7c942fde49ae0bf892263b /src/input.c | |
| parent | 81bfaf91dedc75b758a9057a2b7c23adc5a68e93 (diff) | |
| download | so_long-ff7d60ad044e98e1e2e14170b5804d141856a949.tar.gz so_long-ff7d60ad044e98e1e2e14170b5804d141856a949.zip | |
Cleanup
Diffstat (limited to 'src/input.c')
| -rw-r--r-- | src/input.c | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/src/input.c b/src/input.c index a6cb8d4..0bf54ec 100644 --- a/src/input.c +++ b/src/input.c @@ -6,37 +6,49 @@ /* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/09 15:37:40 by dkaiser #+# #+# */ -/* Updated: 2024/05/10 12:13:22 by dkaiser ### ########.fr */ +/* Updated: 2024/06/10 15:58:43 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ +#include "MLX42/MLX42.h" #include "so_long.h" +static void on_key_press(t_game *game, mlx_key_data_t event); +static void on_key_release(t_game *game, mlx_key_data_t event); + void on_key_input(mlx_key_data_t event, void *params) { t_game *game; game = (t_game *)params; - if (event.action == MLX_PRESS) - { - if (event.key == MLX_KEY_W || event.key == MLX_KEY_UP) - game->input_direction |= UP; - else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) - game->input_direction |= LEFT; - else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) - game->input_direction |= DOWN; - else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) - game->input_direction |= RIGHT; - } + if (event.key == MLX_KEY_ESCAPE && event.action == MLX_PRESS) + mlx_close_window(game->mlx); + else if (event.action == MLX_PRESS) + on_key_press(game, event); else if (event.action == MLX_RELEASE) - { - if (event.key == MLX_KEY_W || event.key == MLX_KEY_UP) - game->input_direction &= ~UP; - else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) - game->input_direction &= ~LEFT; - else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) - game->input_direction &= ~DOWN; - else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) - game->input_direction &= ~RIGHT; - } + on_key_release(game, event); +} + +static void on_key_press(t_game *game, mlx_key_data_t event) +{ + if (event.key == MLX_KEY_W || event.key == MLX_KEY_UP) + game->input_direction |= UP; + else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) + game->input_direction |= LEFT; + else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) + game->input_direction |= DOWN; + else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) + game->input_direction |= RIGHT; +} + +static void on_key_release(t_game *game, mlx_key_data_t event) +{ + if (event.key == MLX_KEY_W || event.key == MLX_KEY_UP) + game->input_direction &= ~UP; + else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) + game->input_direction &= ~LEFT; + else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) + game->input_direction &= ~DOWN; + else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) + game->input_direction &= ~RIGHT; } |
