diff options
author | salaaad2 <arthurdurant263@gmail.com> | 2020-02-17 17:46:11 +0100 |
---|---|---|
committer | salaaad2 <arthurdurant263@gmail.com> | 2020-02-17 17:46:11 +0100 |
commit | 39b3e74b166e69814d2bec2853d6b53cf274af78 (patch) | |
tree | b3c28ed051f1951a80f2d6b45b1210b4c98eae50 /src/ft_raycasting.c | |
parent | Norme (diff) | |
download | 42-cub3d-39b3e74b166e69814d2bec2853d6b53cf274af78.tar.gz 42-cub3d-39b3e74b166e69814d2bec2853d6b53cf274af78.tar.bz2 42-cub3d-39b3e74b166e69814d2bec2853d6b53cf274af78.tar.xz 42-cub3d-39b3e74b166e69814d2bec2853d6b53cf274af78.tar.zst 42-cub3d-39b3e74b166e69814d2bec2853d6b53cf274af78.zip |
add shadows and beginning of wall coordinate hit detection
Diffstat (limited to '')
-rw-r--r-- | src/ft_raycasting.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ft_raycasting.c b/src/ft_raycasting.c index 98f1c81..7ce45d5 100644 --- a/src/ft_raycasting.c +++ b/src/ft_raycasting.c @@ -10,19 +10,23 @@ /* */ /* ************************************************************************** */ +#include <libft.h> #include <cub3d.h> #include <stdint.h> #include <stdio.h> +#include <math.h> void ft_calc_tex(t_cub *clist) { - if (clist->rlist.side == 1) + if (clist->rlist.side == 0) clist->rlist.wall_hit_x = clist->plist->pos_y + clist->rlist.wall_dist * clist->rlist.y_ray_dir; else clist->rlist.wall_hit_x = clist->plist->pos_x + clist->rlist.wall_dist * clist->rlist.x_ray_dir; + clist->rlist.wall_hit_x -= floor(clist->rlist.wall_hit_x); + /*clist->rlist.tex_x =(int)(clist->rlist.wall_hit_x * clist->tlist[clist->w_side].img_w);*/ } static void @@ -44,8 +48,10 @@ static void cl->rlist.sqy = (int16_t)cl->rlist.y_ray_pos; ft_detect(cl); if (cl->rlist.side == 0) + { cl->rlist.wall_dist = (cl->rlist.sqx - cl->rlist.x_ray_pos + (1 - cl->mlist->x_step) / 2) / cl->rlist.x_ray_dir; + } else cl->rlist.wall_dist = (cl->rlist.sqy - cl->rlist.y_ray_pos + (1 - cl->mlist->y_step) / 2) / cl->rlist.y_ray_dir; @@ -71,7 +77,6 @@ void cl->rlist.wall_b = wl->y_size - 1; ft_choose_tex(cl); ft_calc_tex(cl); - printf("%f\n", cl->rlist.wall_hit_x); ft_draw_verline(cl, i, cl->rlist.wall_t - 1, cl->rlist.wall_b); i++; } |