열렬히.뛰기

4. 인테리어 (천장, 하늘)

école 42 > cub3D > 진행상황 > 4. 인테리어 (천장, 하늘)

천장 및 바닥 꾸미기

이미지 출력 파트에서 기본 벡터를 담기 전에 설정해준다.

c
int	drawing(t_box *tools)
{
	int		x;
	float	camera_x;
	t_data	camera_image;

	x = 0;
	camera_x = 0;
	drawing_init(tools, &camera_image);
	drawing_background(tools, &camera_image);
	while (x < WIDTH)
	{
		camera_x = 2 * x / (float)WIDTH - 1;
		raycast_vector_init(tools, camera_x);
		raycast_sidedist_init(tools);
		raycast_shoot_light(tools, tools->arr_map);
		raycast_draw_line(tools, &camera_image, x);
		x++;
	}
...
}
  1. x를 설정한다.
  2. 만약 y 가 전체 세로길이 / 2보다 작다면 천장의 색을, 아니면 바닥의 색을 칠한다.
c
void	drawing_background(t_box *tools, t_data *camera_image)
{
	int	x;
	int	y;
	int	color;

	x = 0;
	while (x < WIDTH)
	{
		y = 0;
		while (y < HEIGHT / 2)
		{
			color = get_background_color(tools, CELLING);
			my_mlx_pixel_put(camera_image, x, y, color);
			y++;
		}
		while (y < HEIGHT)
		{
			color = get_background_color(tools, FLOOR);
			my_mlx_pixel_put(camera_image, x, y, color);
			y++;
		}
		x++;
	}
}