「🔨」 fix(Keys): changed keysto match subject
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/11 16:38:40 by adjoly #+# #+# */
|
/* Created: 2024/09/11 16:38:40 by adjoly #+# #+# */
|
||||||
/* Updated: 2024/11/10 16:41:35 by adjoly ### ########.fr */
|
/* Updated: 2024/11/11 13:27:55 by adjoly ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ typedef struct s_player
|
|||||||
{
|
{
|
||||||
t_vec2 coord;
|
t_vec2 coord;
|
||||||
float direction;
|
float direction;
|
||||||
bool key[4];
|
bool key[6];
|
||||||
} t_player;
|
} t_player;
|
||||||
|
|
||||||
typedef struct s_render
|
typedef struct s_render
|
||||||
@ -64,6 +64,7 @@ typedef struct s_render
|
|||||||
*/
|
*/
|
||||||
int key_down(int key, void *param);
|
int key_down(int key, void *param);
|
||||||
int key_up(int key, void *param);
|
int key_up(int key, void *param);
|
||||||
|
int window_event(int event, void *param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function is here to change the direction of the player
|
* @brief This function is here to change the direction of the player
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/10/04 14:06:39 by adjoly #+# #+# */
|
/* Created: 2024/10/04 14:06:39 by adjoly #+# #+# */
|
||||||
/* Updated: 2024/11/11 12:26:38 by adjoly ### ########.fr */
|
/* Updated: 2024/11/11 13:43:41 by adjoly ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -19,17 +19,19 @@
|
|||||||
# define S_KEY 22
|
# define S_KEY 22
|
||||||
# define A_KEY 4
|
# define A_KEY 4
|
||||||
# define D_KEY 7
|
# define D_KEY 7
|
||||||
|
# define LEFT_KEY 80
|
||||||
|
# define RIGHT_KEY 79
|
||||||
|
|
||||||
# define WHITE 0xFFFFFFFF
|
# define WHITE 0xFFFFFFFF
|
||||||
|
|
||||||
# define WINDOW_W 1600
|
# define WINDOW_W 1600
|
||||||
# define WINDOW_H 900
|
# define WINDOW_H 900
|
||||||
# define PLAYER_ROT_SPEED 0.034906585039887
|
# define PLAYER_ROT_SPEED 0.1308996939
|
||||||
# define PLAYER_SPEED 10
|
# define PLAYER_SPEED 10
|
||||||
# define FOV 70
|
# define FOV 70
|
||||||
|
|
||||||
# define CHUNK_SIZE 64
|
# define CHUNK_SIZE 64
|
||||||
# define TEXTURE_SIZE 64
|
# define TEXTURE_SIZE 64
|
||||||
# define RENDER_DISTANCE 64
|
# define RENDER_DISTANCE 65
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
100
maps/g_ntm.cub
Normal file
100
maps/g_ntm.cub
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
NO ./img/kanel.png
|
||||||
|
SO ./img/cats.png
|
||||||
|
WE ./img/flo.png
|
||||||
|
|
||||||
|
EA ./img/cahuete.png
|
||||||
|
F 109,67,20
|
||||||
|
C 255,204,255
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1111111111111111111111111
|
||||||
|
1000000000110000000000001
|
||||||
|
1011000001110000000000001
|
||||||
|
1001000000000000000000001
|
||||||
|
1111111110110000011100000000000S1
|
||||||
|
100000000011000001110111111111111
|
||||||
|
111000000000000111100000010001
|
||||||
|
100000000000001111101001000001
|
||||||
|
10000000000011111100000010001
|
||||||
|
10000000000001111111111111101
|
||||||
|
10011000000100011111111111111
|
||||||
|
10000000000000001101010010001
|
||||||
|
11000001110101011111011110001
|
||||||
|
11111111 1110101 101111010001
|
||||||
|
11111111 1111111 111111111111
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
37
src/cub3d.c
37
src/cub3d.c
@ -6,7 +6,7 @@
|
|||||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/04 16:58:27 by madumerg #+# #+# */
|
/* Created: 2024/09/04 16:58:27 by madumerg #+# #+# */
|
||||||
/* Updated: 2024/11/10 16:57:46 by adjoly ### ########.fr */
|
/* Updated: 2024/11/11 13:37:32 by adjoly ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -38,6 +38,25 @@ void move_for_back(t_render *render, bool forward)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void move_right_left(t_render *render, bool right)
|
||||||
|
{
|
||||||
|
if (right)
|
||||||
|
{
|
||||||
|
render->player->coord.x += PLAYER_SPEED * \
|
||||||
|
sin(render->player->direction);
|
||||||
|
render->player->coord.y += PLAYER_SPEED * \
|
||||||
|
cos(render->player->direction);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
render->player->coord.x -= PLAYER_SPEED * \
|
||||||
|
sin(render->player->direction);
|
||||||
|
render->player->coord.y -= PLAYER_SPEED * \
|
||||||
|
cos(render->player->direction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int loop(void *param)
|
int loop(void *param)
|
||||||
{
|
{
|
||||||
t_render *render;
|
t_render *render;
|
||||||
@ -49,8 +68,12 @@ int loop(void *param)
|
|||||||
if (render->player->key[2])
|
if (render->player->key[2])
|
||||||
move_for_back(render, false);
|
move_for_back(render, false);
|
||||||
if (render->player->key[3])
|
if (render->player->key[3])
|
||||||
change_direction(PLAYER_ROT_SPEED, false, render->player);
|
move_right_left(render, true);
|
||||||
if (render->player->key[1])
|
if (render->player->key[1])
|
||||||
|
move_right_left(render, false);
|
||||||
|
if (render->player->key[4])
|
||||||
|
change_direction(PLAYER_ROT_SPEED, false, render->player);
|
||||||
|
if (render->player->key[5])
|
||||||
change_direction(PLAYER_ROT_SPEED, true, render->player);
|
change_direction(PLAYER_ROT_SPEED, true, render->player);
|
||||||
render->img = mlx_new_image(render->mlx, WINDOW_W, WINDOW_H);
|
render->img = mlx_new_image(render->mlx, WINDOW_W, WINDOW_H);
|
||||||
render_frame(render);
|
render_frame(render);
|
||||||
@ -70,6 +93,13 @@ void delete_everything(t_pars *parsing, t_render *render)
|
|||||||
free_pars(parsing);
|
free_pars(parsing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void event_hook(t_render *render)
|
||||||
|
{
|
||||||
|
mlx_on_event(render->mlx, render->win, MLX_KEYDOWN, key_down, render);
|
||||||
|
mlx_on_event(render->mlx, render->win, MLX_KEYUP, key_up, render);
|
||||||
|
mlx_on_event(render->mlx, render->win, MLX_WINDOW_EVENT, window_event, render);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int ac, char **av)
|
int main(int ac, char **av)
|
||||||
{
|
{
|
||||||
t_render render;
|
t_render render;
|
||||||
@ -90,9 +120,8 @@ int main(int ac, char **av)
|
|||||||
render.player = &player;
|
render.player = &player;
|
||||||
render.world = &world;
|
render.world = &world;
|
||||||
init_texture(&render, parsing);
|
init_texture(&render, parsing);
|
||||||
|
event_hook(&render);
|
||||||
render.img = mlx_new_image(render.mlx, WINDOW_W, WINDOW_H);
|
render.img = mlx_new_image(render.mlx, WINDOW_W, WINDOW_H);
|
||||||
mlx_on_event(render.mlx, render.win, MLX_KEYDOWN, key_down, &render);
|
|
||||||
mlx_on_event(render.mlx, render.win, MLX_KEYUP, key_up, &render);
|
|
||||||
mlx_loop_hook(render.mlx, loop, &render);
|
mlx_loop_hook(render.mlx, loop, &render);
|
||||||
mlx_loop(render.mlx);
|
mlx_loop(render.mlx);
|
||||||
delete_everything(&parsing, &render);
|
delete_everything(&parsing, &render);
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* key_hook.c :+: :+: :+: */
|
/* event.c :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/11 16:37:56 by adjoly #+# #+# */
|
/* Created: 2024/09/11 16:37:56 by adjoly #+# #+# */
|
||||||
/* Updated: 2024/11/07 12:20:02 by adjoly ### ########.fr */
|
/* Updated: 2024/11/11 13:29:30 by adjoly ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -24,34 +24,6 @@ void change_direction(float speed, bool clockwise, t_player *player)
|
|||||||
fix_ang(&player->direction);
|
fix_ang(&player->direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
int key_hook(int key, void *param)
|
|
||||||
{
|
|
||||||
t_render *render;
|
|
||||||
|
|
||||||
render = (t_render *)param;
|
|
||||||
if (key == ESCAPE_KEY)
|
|
||||||
return (mlx_loop_end(render->mlx));
|
|
||||||
if (key == W_KEY)
|
|
||||||
{
|
|
||||||
render->player->coord.x += PLAYER_SPEED * \
|
|
||||||
cos(render->player->direction);
|
|
||||||
render->player->coord.y += PLAYER_SPEED * \
|
|
||||||
-sin(render->player->direction);
|
|
||||||
}
|
|
||||||
else if (key == S_KEY)
|
|
||||||
{
|
|
||||||
render->player->coord.x -= PLAYER_SPEED * \
|
|
||||||
cos(render->player->direction);
|
|
||||||
render->player->coord.y -= PLAYER_SPEED * \
|
|
||||||
-sin(render->player->direction);
|
|
||||||
}
|
|
||||||
else if (key == D_KEY)
|
|
||||||
change_direction(PLAYER_ROT_SPEED, false, render->player);
|
|
||||||
else if (key == A_KEY)
|
|
||||||
change_direction(PLAYER_ROT_SPEED, true, render->player);
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int key_down(int key, void *param)
|
int key_down(int key, void *param)
|
||||||
{
|
{
|
||||||
t_render *render;
|
t_render *render;
|
||||||
@ -67,6 +39,10 @@ int key_down(int key, void *param)
|
|||||||
render->player->key[2] = true;
|
render->player->key[2] = true;
|
||||||
else if (key == D_KEY)
|
else if (key == D_KEY)
|
||||||
render->player->key[3] = true;
|
render->player->key[3] = true;
|
||||||
|
else if (key == RIGHT_KEY)
|
||||||
|
render->player->key[4] = true;
|
||||||
|
else if (key == LEFT_KEY)
|
||||||
|
render->player->key[5] = true;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,5 +59,16 @@ int key_up(int key, void *param)
|
|||||||
render->player->key[2] = false;
|
render->player->key[2] = false;
|
||||||
else if (key == D_KEY)
|
else if (key == D_KEY)
|
||||||
render->player->key[3] = false;
|
render->player->key[3] = false;
|
||||||
|
else if (key == RIGHT_KEY)
|
||||||
|
render->player->key[4] = false;
|
||||||
|
else if (key == LEFT_KEY)
|
||||||
|
render->player->key[5] = false;
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int window_event(int event, void *param)
|
||||||
|
{
|
||||||
|
if (event == 0)
|
||||||
|
mlx_loop_end(((t_render *)param)->mlx);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
Reference in New Issue
Block a user