Exemple #1
0
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);
}
Exemple #2
0
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);
}