/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/08 14:14:02 by dkaiser #+# #+# */
-/* Updated: 2024/05/10 11:24:42 by dkaiser ### ########.fr */
+/* Updated: 2024/05/10 12:11:11 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
int init(t_game *game);
void loop(void *game);
int draw(t_game *game);
-void on_key_down(mlx_key_data_t keydata, void *params);
-int on_key_up(int keycode, t_game *game);
+void on_key_input(mlx_key_data_t event, void *params);
#endif // SO_LONG_H
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 14:50:09 by dkaiser #+# #+# */
-/* Updated: 2024/05/10 11:49:11 by dkaiser ### ########.fr */
+/* Updated: 2024/05/10 12:11:01 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
static void init_hooks(t_game *game)
{
mlx_loop_hook(game->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); */
}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 15:37:40 by dkaiser #+# #+# */
-/* Updated: 2024/05/10 11:33:09 by dkaiser ### ########.fr */
+/* Updated: 2024/05/10 12:11:48 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#include "so_long.h"
-void on_key_down(mlx_key_data_t keydata, void *params)
+void on_key_input(mlx_key_data_t event, void *params)
{
t_game *game;
- int keycode;
-
- keycode = keydata.os_key;
game = (t_game *) params;
-
- if (keydata.action == MLX_RELEASE)
+ if (event.action == MLX_PRESS)
{
- on_key_up(keycode, game);
- return;
+ 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;
}
-
- 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);
}