From: Dominik Kaiser Date: Fri, 10 May 2024 10:12:24 +0000 (+0200) Subject: Change input handling to MLX42 approach X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=b114117e5f62761dfecd618432a44e75263a929c;p=42%2Fso_long.git Change input handling to MLX42 approach --- diff --git a/include/so_long.h b/include/so_long.h index e4e4f57..b2bf7d7 100644 --- a/include/so_long.h +++ b/include/so_long.h @@ -6,7 +6,7 @@ /* By: dkaiser mlx, loop, game); - mlx_key_hook(game->mlx, on_key_down, game); + mlx_key_hook(game->mlx, on_key_input, game); /* mlx_hook(game->window, 2, 0, on_key_down, game); */ /* mlx_hook(game->window, 3, 0, on_key_up, game); */ } diff --git a/src/input.c b/src/input.c index 7582226..40c5670 100644 --- a/src/input.c +++ b/src/input.c @@ -6,46 +6,37 @@ /* By: dkaiser 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; + } + 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; } - - if (keycode == 13 || keycode == 126) - game->input_direction |= UP; - else if (keycode == 0 || keycode == 123) - game->input_direction |= LEFT; - else if (keycode == 1 || keycode == 125) - game->input_direction |= DOWN; - else if (keycode == 2 || keycode == 124) - game->input_direction |= RIGHT; -} - -int on_key_up(int keycode, t_game *game) -{ - if (keycode == 13 || keycode == 126) - game->input_direction &= ~UP; - else if (keycode == 0 || keycode == 123) - game->input_direction &= ~LEFT; - else if (keycode == 1 || keycode == 125) - game->input_direction &= ~DOWN; - else if (keycode == 2 || keycode == 124) - game->input_direction &= ~RIGHT; - return (0); }