diff options
| author | Dominik Kaiser | 2024-05-10 12:26:25 +0200 |
|---|---|---|
| committer | GitHub | 2024-05-10 12:26:25 +0200 |
| commit | 10b5c3a64680c4dc741cb41c5950abccbf310c7e (patch) | |
| tree | 4a65d2387c6964ee9357d1ad17e7f9f5094ee99e /src/input.c | |
| parent | e206d293aa947dc56fa8408c42dccaff9cb423c3 (diff) | |
| parent | 461f71e2660e6286ffc757ca6b7077c70c80b6cf (diff) | |
| download | so_long-10b5c3a64680c4dc741cb41c5950abccbf310c7e.tar.gz so_long-10b5c3a64680c4dc741cb41c5950abccbf310c7e.zip | |
Merge migrate-to-mlx42 into master
Migrate from the old mlx to MLX42
Diffstat (limited to 'src/input.c')
| -rw-r--r-- | src/input.c | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/src/input.c b/src/input.c index fe1f219..a6cb8d4 100644 --- a/src/input.c +++ b/src/input.c @@ -6,34 +6,37 @@ /* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/09 15:37:40 by dkaiser #+# #+# */ -/* Updated: 2024/05/09 19:32:18 by dkaiser ### ########.fr */ +/* Updated: 2024/05/10 12:13:22 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ #include "so_long.h" -int on_key_down(int keycode, t_game *game) +void on_key_input(mlx_key_data_t event, void *params) { - 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); -} + t_game *game; -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); + 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; + } + 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; + } } |
