void ft_detect_wall(t_glob *gl) { int x; x = 0; while (x < gl->s_x) { gl->camx = 2 * x / (double)gl->s_x - 1; ft_init_raycast(gl); ft_rayhandle(gl); dda(gl); handle_wall(gl); ft_verline(x, gl); x++; } gl->oldtime = gl->time; gl->time = clock(); gl->ftime = (gl->time - gl->oldtime) / CLOCKS_PER_SEC; gl->ms = gl->ftime * 5.0; gl->rs = gl->ftime * 3.0; ft_minimap(gl); ft_posmap(gl); mlx_put_image_to_window(gl->mlx, gl->win, gl->img, 0, 0); mlx_put_image_to_window(gl->mlx, gl->win, gl->minimap, 1170, 600); mlx_destroy_image(gl->mlx, gl->img); mlx_destroy_image(gl->mlx, gl->minimap); }
void ft_raycast(t_all *all) { FN.img = mlx_new_image(FN.mlx, LARG, HAUT); FN.data = mlx_get_data_addr(FN.img, &FN.bpp, &FN.sizeline, &FN.endian); all->x = 0; while (all->x < LARG) { ft_init_ray(all, &RAY, &PLAYER); ft_calc_dest_dist(all, &RAY); ft_check_hit(all, &RAY); ft_calc_wall_dist(all, &RAY); ft_calc_height_line(&RAY); ft_check_wall_color(all, &RAY); ft_verline(&RAY, all); all->x++; } mlx_put_image_to_window(FN.mlx, FN.win, FN.img, 0, 0); ft_move(all, &PLAYER, &KEY); }