add sprint

This commit is contained in:
kinou-p 2022-06-14 15:01:21 +02:00
parent 1775902593
commit deacf577c2
6 changed files with 47 additions and 18 deletions

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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");
} }
} }

View File

@ -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);

View File

@ -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)