From 18b5b465af6aecc4df302c74281793032b2bd291 Mon Sep 17 00:00:00 2001 From: Adam JOLY Date: Sun, 10 Nov 2024 15:45:38 +0100 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat(Texture):=20?= =?UTF-8?q?Fully=20working=20:+1:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img/flo.png | Bin 6589 -> 13496 bytes includes/game/settings.h | 4 ++-- src/raycasting/dda.c | 8 +++++++- src/raycasting/renderer.c | 40 ++++++++++++++++++++++++++++++++++---- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/img/flo.png b/img/flo.png index 79fae6f1db39104b6e6a972f585597b5bb125af9..3c4167df88165f64f974b65826a8c6850ea6a2d9 100755 GIT binary patch literal 13496 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 GZv7wfl}*k7 literal 6589 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 EHz$bVDgXcg diff --git a/includes/game/settings.h b/includes/game/settings.h index 0be1752..5aede31 100644 --- a/includes/game/settings.h +++ b/includes/game/settings.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/04 14:06:39 by adjoly #+# #+# */ -/* Updated: 2024/11/09 15:54:46 by madumerg ### ########.fr */ +/* Updated: 2024/11/10 13:48:57 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,6 +29,6 @@ # define FOV 70 # define CHUNK_SIZE 64 -# define TEXTURE_SIZE 128 +# define TEXTURE_SIZE 64 #endif diff --git a/src/raycasting/dda.c b/src/raycasting/dda.c index 06f6bb8..5465313 100644 --- a/src/raycasting/dda.c +++ b/src/raycasting/dda.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/07 16:55:09 by adjoly #+# #+# */ -/* Updated: 2024/11/06 13:21:38 by adjoly ### ########.fr */ +/* Updated: 2024/11/10 14:26:42 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,6 +36,12 @@ void setup_dda_ver(t_player *play, t_ray *ray, t_dda *dda) ray->pos.x = (((int)play->coord.x >> 6) << 6) + CHUNK_SIZE; ray->pos.y = (play->coord.x - ray->pos.x) * ray->tan + play->coord.y; } + else + { + dda->s = false; + ray->pos.x = play->coord.x; + ray->pos.y = play->coord.y; + } } void setup_dda_hor(t_player *play, t_ray *ray, t_dda *dda) diff --git a/src/raycasting/renderer.c b/src/raycasting/renderer.c index 58836cd..72914f5 100644 --- a/src/raycasting/renderer.c +++ b/src/raycasting/renderer.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/28 15:48:39 by adjoly #+# #+# */ -/* Updated: 2024/11/09 17:38:48 by madumerg ### ########.fr */ +/* Updated: 2024/11/10 15:44:00 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,7 +54,39 @@ void draw_celling(t_render *render) } } -void print_line(t_render *render, t_ray *ray, int x) +int get_color(t_ray *ray, t_dda *dda, t_render *render, int line_start, int line_stop, int line_size) +{ + int x; + int h; + int color; + void **texture; + + (void)ray; + line_stop = line_size / 2 + WINDOW_H / 2; + if (dda->distance.y < dda->distance.x) + { + x = (int)dda->hori.x % CHUNK_SIZE; + h = abs((line_stop - line_start) * TEXTURE_SIZE / line_size - 63); + if (ray->angle < M_PI) + texture = &render->texture[0]; + else + texture = &render->texture[2]; + color = mlx_get_image_pixel(render->mlx, *texture, x, h); + } + else + { + x = (int)dda->vert.y % CHUNK_SIZE; + h = abs((line_stop - line_start) * TEXTURE_SIZE / line_size - 63); + if (ray->angle <= 3 * M_PI / 2 && ray->angle >= M_PI / 2) + texture = &render->texture[1]; + else + texture = &render->texture[3]; + color = mlx_get_image_pixel(render->mlx, *texture, x, h); + } + return (color); +} + +void print_line(t_render *render, t_ray *ray, int x, t_dda *dda) { int line_size; int line_stop; @@ -70,7 +102,7 @@ void print_line(t_render *render, t_ray *ray, int x) while (line_start < line_stop) { if (x < WINDOW_W && x >= 0) - mlx_set_image_pixel(render->mlx, render->img, x, line_start, WHITE); + mlx_set_image_pixel(render->mlx, render->img, x, line_start, get_color(ray, dda, render, line_start, line_stop, line_size)); line_start++; } } @@ -92,7 +124,7 @@ void render_frame(t_render *render) dda_algo(render, &dda, &ray); ang = cos(render->player->direction - ray.angle); ray.distance *= ang; - print_line(render, &ray, i); + print_line(render, &ray, i, &dda); ray.angle += (M_PI / 180) / ((float)WINDOW_W / FOV); fix_ang(&ray.angle); i--;