From 537c73b02c38b1925a68f01b5f74763ff9faa0f3 Mon Sep 17 00:00:00 2001 From: kinou-p Date: Wed, 1 Jun 2022 19:23:23 +0200 Subject: [PATCH] fix botoom line add floor and sky --- includes/Cub3D.h | 13 ++++++++++--- srcs/cast_ray.c | 4 +++- srcs/main.c | 4 +++- srcs/utils.c | 40 ++++++++++++++++++++++++++++++++++------ 4 files changed, 50 insertions(+), 11 deletions(-) diff --git a/includes/Cub3D.h b/includes/Cub3D.h index ed71008..b4d7232 100644 --- a/includes/Cub3D.h +++ b/includes/Cub3D.h @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/02/13 16:30:59 by apommier #+# #+# */ -/* Updated: 2022/05/20 14:04:12 by apommier ### ########.fr */ +/* Updated: 2022/06/01 19:21:40 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,11 +44,18 @@ typedef struct all_wall_texture{ unsigned char *south; } sprite; +typedef struct s_color{ + //unsigned char t; + unsigned char r; + unsigned char g; + unsigned char b; +} color; + typedef struct map_information{ char **map; sprite texture; - int floor; - int sky; + color floor; + color sky; char *simple_map; int size; int x; diff --git a/srcs/cast_ray.c b/srcs/cast_ray.c index 358874f..3225e3d 100644 --- a/srcs/cast_ray.c +++ b/srcs/cast_ray.c @@ -122,6 +122,8 @@ void draw_ray3d(t_data *img, ray ray) int texture_size = 64; line_height = img->map.size * 960 / ray.dist; + if (line_height > 5000) + line_height = 5000; line_offset = 256 - line_height / 2; double gap = 1; double myy = 0; @@ -130,7 +132,7 @@ void draw_ray3d(t_data *img, ray ray) myy = 0; gap = (texture_size / line_height); mx = ((int)ray.mp) % texture_size; - while (y < line_height) + while (y < line_height - 8) { myy += gap; my = (int)myy;//gap; diff --git a/srcs/main.c b/srcs/main.c index c07444a..a31264a 100644 --- a/srcs/main.c +++ b/srcs/main.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/02/13 16:42:55 by apommier #+# #+# */ -/* Updated: 2022/05/20 15:57:10 by apommier ### ########.fr */ +/* Updated: 2022/06/01 18:04:29 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,6 +49,8 @@ map_info set_map(char **argv) } close(fd); ret_map.simple_map = map; + //ret_map.floor = ; + //ret_map.sky = ; ret_map.x = 8; ret_map.y = 8; ret_map.size = ret_map.x * ret_map.y; diff --git a/srcs/utils.c b/srcs/utils.c index 77d503c..139a01d 100644 --- a/srcs/utils.c +++ b/srcs/utils.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/02/13 23:37:02 by apommier #+# #+# */ -/* Updated: 2022/05/20 16:00:24 by apommier ### ########.fr */ +/* Updated: 2022/06/01 19:21:35 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -88,6 +88,15 @@ int is_good(t_data *img, int type) return (1); } +/*int create_trgb(int t, int r, int g, int b) +{ + return (t << 24 | r << 16 | g << 8 | b); +}*/ +int create_trgb(unsigned char t, unsigned char r, unsigned char g, unsigned char b) +{ + return (*(int *)(unsigned char [4]){b, g, r, t}); +} + void set_back(t_data *img) { //int x = 0; @@ -121,25 +130,44 @@ void set_back(t_data *img) //} }*/ int x = 0; + //int tmp; + + //tmp = (int *)img->buffer; + img->map.floor.r = 128; + img->map.floor.g = 128; + img->map.floor.b = 128; + img->map.sky.r = 0; + img->map.sky.g = 191; + img->map.sky.b = 255; while (x < 512 * 960 * 4) { if (x > 512 * 960 * 2) { + img->buffer[x + 0] = img->map.floor.b; + img->buffer[x + 1] = img->map.floor.g; + img->buffer[x + 2] =img->map.floor.r; + img->buffer[x + 3] = 0; + //tmp = create_trgb(128, 128, 128, 0); img->buffer[x + 0] = 128; img->buffer[x + 1] = 128; img->buffer[x + 2] = 128; - img->buffer[x + 3] = 128; + img->buffer[x + 3] = 0; } else { - img->buffer[x + 0] = 255; + img->buffer[x + 0] = img->map.sky.b; + img->buffer[x + 1] = img->map.sky.g; + img->buffer[x + 2] =img->map.sky.r; + img->buffer[x + 3] = 0; + //tmp = create_trgb(255, 191, 0, 0); + /*img->buffer[x + 0] = 255; img->buffer[x + 1] = 191; img->buffer[x + 2] = 0; - img->buffer[x + 3] = 0; + img->buffer[x + 3] = 0;*/ } x += 4; } - + //img->buffer = (char *)tmp; /*while (x < 960) { y = 0; @@ -156,7 +184,7 @@ void set_back(t_data *img) int key_press(int code, t_data *img) { - printf("touche "); + //printf("touche "); if (code == 65307) quit_game(img); else