diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ft_draw_circle.c | 41 | ||||
| -rw-r--r-- | src/ft_draw_map.c | 6 | ||||
| -rw-r--r-- | src/ft_draw_scene.c | 2 | ||||
| -rw-r--r-- | src/ft_raycasting.c | 1 | ||||
| -rw-r--r-- | src/main.c | 1 | 
5 files changed, 46 insertions, 5 deletions
| diff --git a/src/ft_draw_circle.c b/src/ft_draw_circle.c new file mode 100644 index 0000000..32a1612 --- /dev/null +++ b/src/ft_draw_circle.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/*                                                                            */ +/*                                                        :::      ::::::::   */ +/*   ft_draw_circle.c                                   :+:      :+:    :+:   */ +/*                                                    +:+ +:+         +:+     */ +/*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */ +/*                                                +#+#+#+#+#+   +#+           */ +/*   Created: 2020/02/18 15:22:51 by rbousset          #+#    #+#             */ +/*   Updated: 2020/02/18 15:22:53 by rbousset         ###   ########lyon.fr   */ +/*                                                                            */ +/* ************************************************************************** */ + +#include <cub3d.h> +#include <mlx.h> +#include <stdint.h> +#include <math.h> + +void +	ft_draw_circle(int32_t a, int32_t b, int32_t color, t_cub *cl) +{ +	const uint16_t	scale = cl->mlist->scale / 2.5; +	int				x; +	int				y; +	float	i; +	float	angle; +	float	x1; +	float	y1; + +	x = a; +	y = b; + +	i = 0; +	while (i < 360) +	{ +		angle = i; +		x1 = scale * cos(angle * M_PI / 180); +		y1 = scale * sin(angle * M_PI / 180); +		*(int*)(cl->img.ptr + (x + (int)x1) * 4 + ((y + (int)y1) * cl->img.sizeline)) = color; +		i += 0.1; +	} +} diff --git a/src/ft_draw_map.c b/src/ft_draw_map.c index 2e17d69..7da2e58 100644 --- a/src/ft_draw_map.c +++ b/src/ft_draw_map.c @@ -28,9 +28,9 @@ static void  	const float		y = plist->pos_y;  	const uint16_t	scale = clist->mlist->scale; -	ft_draw_square( -				scale + (x * (scale)), -				ft_y_offset(clist) + (y * (scale)), +	ft_draw_circle( +				(scale / 2 ) + (x * (scale)), +				ft_y_offset(clist) - (scale) + (y * (scale)),  				0x009843fa,  				clist);  } diff --git a/src/ft_draw_scene.c b/src/ft_draw_scene.c index ec2cc89..966d357 100644 --- a/src/ft_draw_scene.c +++ b/src/ft_draw_scene.c @@ -18,7 +18,7 @@  void  	ft_draw_scene(t_cub *clist)  { -	mlx_clear_window(clist->wlist->wlx, clist->wlist->winptr); +	/* mlx_clear_window(clist->wlist->wlx, clist->wlist->winptr); */  	clist->img.img = mlx_new_image(clist->wlist->wlx,  				clist->wlist->x_size, clist->wlist->y_size);  	clist->img.ptr = mlx_get_data_addr(clist->img.img, &clist->img.bpp, diff --git a/src/ft_raycasting.c b/src/ft_raycasting.c index ff73893..9a89dc4 100644 --- a/src/ft_raycasting.c +++ b/src/ft_raycasting.c @@ -71,7 +71,6 @@ void  	i = 0;  	wl = cl->wlist; -	ft_wall_tex_init(cl);  	while (i < wl->x_size)  	{  		ft_initray(cl, i); @@ -31,6 +31,7 @@ int  	ft_parse_map(argv[1], clist);  	if (ft_init_winlx(clist) < 0)  		return (ft_exit(3, clist)); +	ft_wall_tex_init(clist);  	ft_draw_scene(clist);  	ft_hooks_and_loops(clist->wlist, clist);  	return (0); | 
