add sprint
This commit is contained in:
parent
1775902593
commit
deacf577c2
@ -6,7 +6,7 @@
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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 side;
|
||||
int angle_side;
|
||||
int shift;
|
||||
} player;
|
||||
|
||||
typedef struct s_data {
|
||||
@ -98,6 +99,7 @@ typedef struct s_data {
|
||||
int err;
|
||||
} t_data;
|
||||
|
||||
int update_pos(t_data *img);
|
||||
char *transform_map(char **double_map, t_data *img);
|
||||
int check_texture_color(char **tab, t_data *img);
|
||||
int check_map(char **av, t_data *img);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
NO ./sprite/magma_shade.ppm
|
||||
SO ./sprite/magma_shade.ppm
|
||||
EA ./sprite/magma_shade.ppm
|
||||
WE ./sprite/magma_shade.ppm
|
||||
NO ./sprite/mossy_cobblestone.ppm
|
||||
SO ./sprite/mossy_cobblestone.ppm
|
||||
EA ./sprite/obsidian.ppm
|
||||
WE ./sprite/obsidian.ppm
|
||||
|
||||
|
||||
1111111111111111111111111
|
||||
@ -9,8 +9,8 @@ WE ./sprite/magma_shade.ppm
|
||||
1011000001110000000000001
|
||||
1001000000000000000000001
|
||||
111111111011000001110000000000001
|
||||
100000000011000001110111111111111
|
||||
11110111111111011100000010001
|
||||
100000000011100001110111111111111
|
||||
11110111111 11011100000010001
|
||||
11110111111111011101010010001
|
||||
11000000110101011100000010001
|
||||
10000000000000001100000010001
|
||||
|
||||
11
srcs/main.c
11
srcs/main.c
@ -6,7 +6,7 @@
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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;
|
||||
else if (type == 65363)//fleche droite
|
||||
img->player.angle_side = 1;
|
||||
else if (type == 65505)
|
||||
img->player.shift = 1;
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -122,6 +124,8 @@ int key_released(int type, t_data *img)
|
||||
img->player.angle_side = 0;
|
||||
else if (type == 65363)//fleche droite
|
||||
img->player.angle_side = 0;
|
||||
else if (type == 65505)
|
||||
img->player.shift = 0;
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -160,6 +164,11 @@ int main(int argc, char **argv)
|
||||
img.player.angle = 90;
|
||||
img.player.vx = cos(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_player(img.player, &img);
|
||||
//print_ray(&img);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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;
|
||||
printf("x= %d y= %d\n", img->map.x, img->map.y);
|
||||
map = ft_calloc(sizeof(char), img->map.size + 1);
|
||||
if (!map)
|
||||
quit_game(img);
|
||||
while (double_map[++i])
|
||||
{
|
||||
j = -1;
|
||||
@ -98,18 +100,25 @@ void set_color(char *str, t_data *img)
|
||||
{
|
||||
char c;
|
||||
int index;
|
||||
char **tab;
|
||||
|
||||
c = next_space(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 (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 (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 :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: sadjigui <sadjigui@student.42.fr> +#+ +:+ +#+ */
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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)
|
||||
{
|
||||
if (line[0] != '\n' && img->err == 0)
|
||||
{
|
||||
if (detect_map_line(line))
|
||||
img->err = 1;
|
||||
if (line[0] == '\n' && img->err == 1)
|
||||
img->err = 2;
|
||||
}
|
||||
tmp = ft_strjoin(str, line);
|
||||
if (str != NULL)
|
||||
free(str);
|
||||
|
||||
17
srcs/utils.c
17
srcs/utils.c
@ -6,7 +6,7 @@
|
||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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 multiplicator;
|
||||
|
||||
if (img->player.shift == 1)
|
||||
multiplicator = 4;
|
||||
else
|
||||
multiplicator = 2;
|
||||
if (img->player.front == 1)
|
||||
{
|
||||
img->player.x += img->player.vx * 2;
|
||||
img->player.y += img->player.vy * 2;
|
||||
img->player.x += img->player.vx * multiplicator;
|
||||
img->player.y += img->player.vy * multiplicator;
|
||||
}
|
||||
else if (img->player.front == -1)
|
||||
{
|
||||
img->player.x -= img->player.vx * 2;
|
||||
img->player.y -= img->player.vy * 2;
|
||||
img->player.x -= img->player.vx * multiplicator;
|
||||
img->player.y -= img->player.vy * multiplicator;
|
||||
}
|
||||
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.vy = -sin(deg_to_rad(img->player.angle));
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
// int is_good(t_data *img, int type)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user