47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
// input.c
|
|
#include "cub3d.h"
|
|
#ifdef __APPLE__
|
|
# define KEY_ESC 53
|
|
# define KEY_W 13
|
|
# define KEY_A 0
|
|
# define KEY_S 1
|
|
# define KEY_D 2
|
|
# define KEY_LEFT 123
|
|
# define KEY_RIGHT 124
|
|
#else
|
|
# define KEY_ESC 65307
|
|
# define KEY_W 119
|
|
# define KEY_A 97
|
|
# define KEY_S 115
|
|
# define KEY_D 100
|
|
# define KEY_LEFT 65361
|
|
# define KEY_RIGHT 65363
|
|
#endif
|
|
|
|
int key_press(int key, t_app *a){
|
|
if (key == KEY_ESC) close_win(a);
|
|
if (key == KEY_W) a->keys.w = true;
|
|
if (key == KEY_S) a->keys.s = true;
|
|
if (key == KEY_A) a->keys.a = true;
|
|
if (key == KEY_D) a->keys.d = true;
|
|
if (key == KEY_LEFT) a->keys.left = true;
|
|
if (key == KEY_RIGHT) a->keys.right = true;
|
|
return 0;
|
|
}
|
|
int key_release(int key, t_app *a){
|
|
if (key == KEY_W) a->keys.w = false;
|
|
if (key == KEY_S) a->keys.s = false;
|
|
if (key == KEY_A) a->keys.a = false;
|
|
if (key == KEY_D) a->keys.d = false;
|
|
if (key == KEY_LEFT) a->keys.left = false;
|
|
if (key == KEY_RIGHT) a->keys.right = false;
|
|
return 0;
|
|
}
|
|
int close_win(t_app *a){
|
|
if (a->zbuf) free(a->zbuf);
|
|
if (a->frame.ptr) mlx_destroy_image(a->mlx, a->frame.ptr);
|
|
if (a->win) mlx_destroy_window(a->mlx, a->win);
|
|
exit(0);
|
|
return 0;
|
|
}
|