add sprint
This commit is contained in:
parent
1775902593
commit
deacf577c2
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/02/13 16:30:59 by apommier #+# #+# */
|
/* Created: 2022/02/13 16:30:59 by apommier #+# #+# */
|
||||||
/* Updated: 2022/06/14 01:04:15 by apommier ### ########.fr */
|
/* Updated: 2022/06/14 14:59:08 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -81,6 +81,7 @@ typedef struct player_position
|
|||||||
int front;
|
int front;
|
||||||
int side;
|
int side;
|
||||||
int angle_side;
|
int angle_side;
|
||||||
|
int shift;
|
||||||
} player;
|
} player;
|
||||||
|
|
||||||
typedef struct s_data {
|
typedef struct s_data {
|
||||||
@ -98,6 +99,7 @@ typedef struct s_data {
|
|||||||
int err;
|
int err;
|
||||||
} t_data;
|
} t_data;
|
||||||
|
|
||||||
|
int update_pos(t_data *img);
|
||||||
char *transform_map(char **double_map, t_data *img);
|
char *transform_map(char **double_map, t_data *img);
|
||||||
int check_texture_color(char **tab, t_data *img);
|
int check_texture_color(char **tab, t_data *img);
|
||||||
int check_map(char **av, t_data *img);
|
int check_map(char **av, t_data *img);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
NO ./sprite/magma_shade.ppm
|
NO ./sprite/mossy_cobblestone.ppm
|
||||||
SO ./sprite/magma_shade.ppm
|
SO ./sprite/mossy_cobblestone.ppm
|
||||||
EA ./sprite/magma_shade.ppm
|
EA ./sprite/obsidian.ppm
|
||||||
WE ./sprite/magma_shade.ppm
|
WE ./sprite/obsidian.ppm
|
||||||
|
|
||||||
|
|
||||||
1111111111111111111111111
|
1111111111111111111111111
|
||||||
@ -9,8 +9,8 @@ WE ./sprite/magma_shade.ppm
|
|||||||
1011000001110000000000001
|
1011000001110000000000001
|
||||||
1001000000000000000000001
|
1001000000000000000000001
|
||||||
111111111011000001110000000000001
|
111111111011000001110000000000001
|
||||||
100000000011000001110111111111111
|
100000000011100001110111111111111
|
||||||
11110111111111011100000010001
|
11110111111 11011100000010001
|
||||||
11110111111111011101010010001
|
11110111111111011101010010001
|
||||||
11000000110101011100000010001
|
11000000110101011100000010001
|
||||||
10000000000000001100000010001
|
10000000000000001100000010001
|
||||||
|
|||||||
11
srcs/main.c
11
srcs/main.c
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/02/13 16:42:55 by apommier #+# #+# */
|
/* Created: 2022/02/13 16:42:55 by apommier #+# #+# */
|
||||||
/* Updated: 2022/06/14 00:10:50 by apommier ### ########.fr */
|
/* Updated: 2022/06/14 14:56:27 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -105,6 +105,8 @@ int key_pressed(int type, t_data *img)
|
|||||||
img->player.angle_side = -1;
|
img->player.angle_side = -1;
|
||||||
else if (type == 65363)//fleche droite
|
else if (type == 65363)//fleche droite
|
||||||
img->player.angle_side = 1;
|
img->player.angle_side = 1;
|
||||||
|
else if (type == 65505)
|
||||||
|
img->player.shift = 1;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,6 +124,8 @@ int key_released(int type, t_data *img)
|
|||||||
img->player.angle_side = 0;
|
img->player.angle_side = 0;
|
||||||
else if (type == 65363)//fleche droite
|
else if (type == 65363)//fleche droite
|
||||||
img->player.angle_side = 0;
|
img->player.angle_side = 0;
|
||||||
|
else if (type == 65505)
|
||||||
|
img->player.shift = 0;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,6 +164,11 @@ int main(int argc, char **argv)
|
|||||||
img.player.angle = 90;
|
img.player.angle = 90;
|
||||||
img.player.vx = cos(deg_to_rad(img.player.angle));
|
img.player.vx = cos(deg_to_rad(img.player.angle));
|
||||||
img.player.vy = sin(deg_to_rad(img.player.angle));
|
img.player.vy = sin(deg_to_rad(img.player.angle));
|
||||||
|
img.player.front = 0;
|
||||||
|
img.player.side = 0;
|
||||||
|
img.player.angle_side = 0;
|
||||||
|
img.player.shift = 0;
|
||||||
|
|
||||||
//print_map(img.map, &img);
|
//print_map(img.map, &img);
|
||||||
//print_player(img.player, &img);
|
//print_player(img.player, &img);
|
||||||
//print_ray(&img);
|
//print_ray(&img);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/06/11 01:00:17 by apommier #+# #+# */
|
/* Created: 2022/06/11 01:00:17 by apommier #+# #+# */
|
||||||
/* Updated: 2022/06/14 01:04:04 by apommier ### ########.fr */
|
/* Updated: 2022/06/14 14:58:34 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -46,6 +46,8 @@ char *transform_map(char **double_map, t_data *img)
|
|||||||
img->map.size = img->map.x * img->map.y;
|
img->map.size = img->map.x * img->map.y;
|
||||||
printf("x= %d y= %d\n", img->map.x, img->map.y);
|
printf("x= %d y= %d\n", img->map.x, img->map.y);
|
||||||
map = ft_calloc(sizeof(char), img->map.size + 1);
|
map = ft_calloc(sizeof(char), img->map.size + 1);
|
||||||
|
if (!map)
|
||||||
|
quit_game(img);
|
||||||
while (double_map[++i])
|
while (double_map[++i])
|
||||||
{
|
{
|
||||||
j = -1;
|
j = -1;
|
||||||
@ -98,18 +100,25 @@ void set_color(char *str, t_data *img)
|
|||||||
{
|
{
|
||||||
char c;
|
char c;
|
||||||
int index;
|
int index;
|
||||||
|
char **tab;
|
||||||
|
|
||||||
c = next_space(str, 0);
|
c = next_space(str, 0);
|
||||||
index = next_space_index(str, 0);
|
index = next_space_index(str, 0);
|
||||||
|
tab = ft_split(str + 1, ',');
|
||||||
|
if (!tab)
|
||||||
|
quit_game(img);
|
||||||
|
if (double_size(tab) != 3)
|
||||||
|
ft_exit("Error\nBad syntax in map file (RGB)\n");
|
||||||
if (c == 'F')
|
if (c == 'F')
|
||||||
{
|
{
|
||||||
if (str[index + 1] != ' ')
|
if (str[index + 1] != ' ')
|
||||||
ft_exit("Error\nBad syntax in map file\n");
|
ft_exit("Error\nBad syntax in map file (RGB)\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
if (c == 'C')
|
if (c == 'C')
|
||||||
{
|
{
|
||||||
if (str[index + 1] != ' ')
|
if (str[index + 1] != ' ')
|
||||||
ft_exit("Error\nBad syntax in map file\n");
|
ft_exit("Error\nBad syntax in map file (RGB)\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,10 +3,10 @@
|
|||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* parse_map.c :+: :+: :+: */
|
/* parse_map.c :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: sadjigui <sadjigui@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/05/10 17:54:25 by sadjigui #+# #+# */
|
/* Created: 2022/05/10 17:54:25 by sadjigui #+# #+# */
|
||||||
/* Updated: 2022/06/14 14:56:22 by sadjigui ### ########.fr */
|
/* Updated: 2022/06/14 15:00:35 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -281,10 +281,12 @@ char **isafile(char **av, t_data *img)
|
|||||||
while ((line = get_next_line(fd)) != NULL)
|
while ((line = get_next_line(fd)) != NULL)
|
||||||
{
|
{
|
||||||
if (line[0] != '\n' && img->err == 0)
|
if (line[0] != '\n' && img->err == 0)
|
||||||
|
{
|
||||||
if (detect_map_line(line))
|
if (detect_map_line(line))
|
||||||
img->err = 1;
|
img->err = 1;
|
||||||
if (line[0] == '\n' && img->err == 1)
|
if (line[0] == '\n' && img->err == 1)
|
||||||
img->err = 2;
|
img->err = 2;
|
||||||
|
}
|
||||||
tmp = ft_strjoin(str, line);
|
tmp = ft_strjoin(str, line);
|
||||||
if (str != NULL)
|
if (str != NULL)
|
||||||
free(str);
|
free(str);
|
||||||
|
|||||||
17
srcs/utils.c
17
srcs/utils.c
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/02/13 23:37:02 by apommier #+# #+# */
|
/* Created: 2022/02/13 23:37:02 by apommier #+# #+# */
|
||||||
/* Updated: 2022/06/14 00:09:06 by apommier ### ########.fr */
|
/* Updated: 2022/06/14 14:58:03 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -64,15 +64,21 @@ void ft_error(char *error_msg)
|
|||||||
|
|
||||||
int update_pos(t_data *img)
|
int update_pos(t_data *img)
|
||||||
{
|
{
|
||||||
|
int multiplicator;
|
||||||
|
|
||||||
|
if (img->player.shift == 1)
|
||||||
|
multiplicator = 4;
|
||||||
|
else
|
||||||
|
multiplicator = 2;
|
||||||
if (img->player.front == 1)
|
if (img->player.front == 1)
|
||||||
{
|
{
|
||||||
img->player.x += img->player.vx * 2;
|
img->player.x += img->player.vx * multiplicator;
|
||||||
img->player.y += img->player.vy * 2;
|
img->player.y += img->player.vy * multiplicator;
|
||||||
}
|
}
|
||||||
else if (img->player.front == -1)
|
else if (img->player.front == -1)
|
||||||
{
|
{
|
||||||
img->player.x -= img->player.vx * 2;
|
img->player.x -= img->player.vx * multiplicator;
|
||||||
img->player.y -= img->player.vy * 2;
|
img->player.y -= img->player.vy * multiplicator;
|
||||||
}
|
}
|
||||||
if (img->player.side == 1)
|
if (img->player.side == 1)
|
||||||
{
|
{
|
||||||
@ -98,6 +104,7 @@ int update_pos(t_data *img)
|
|||||||
img->player.vx = cos(deg_to_rad(img->player.angle));
|
img->player.vx = cos(deg_to_rad(img->player.angle));
|
||||||
img->player.vy = -sin(deg_to_rad(img->player.angle));
|
img->player.vy = -sin(deg_to_rad(img->player.angle));
|
||||||
}
|
}
|
||||||
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// int is_good(t_data *img, int type)
|
// int is_good(t_data *img, int type)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user