천장 및 바닥 꾸미기
이미지 출력 파트에서 기본 벡터를 담기 전에 설정해준다.
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++;
}
...
}
- x를 설정한다.
- 만약 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++;
}
}