- raycast와 mlx를 활용하여 1인칭 게임을 구현
- 광선을 직선으로 투사해 가장 먼저 닿은 물체와의 거리를 파악하는 기법
- 여기서는 플레이어의 시야에 보이는 벽과의 거리를 파악하여 화면 높이와 벽의 높이를 거리에 따른 비율로 계산해 2D맵을 3D원근법으로 렌더링하기위해 사용
- 0, 1, N, S, E, W로 이루어진 map을 읽어올 수 있어야함
- map 파일의 상단에는 불러올 텍스쳐 정보등의 identifier를 가지고 있어야 함
- map이 벽으로 둘러쌓여있지 않다면 error
- 동, 서, 남, 북 벽들은 각각 다른 텍스쳐를 가지고 있어야 함
- W, A, S, D를 사용해 캐릭터를 움직일 수 있어야함
- mlx와 raycast를 사용하여 구현
- map파일 예시
NO ./path_to_the_north_texture SO ./path_to_the_south_texture WE ./path_to_the_west_texture EA ./path_to_the_east_texture F 220,100,0 C 225,30,0 1111111111111111111111111 1000000000110000000000001 1011000001110000000000001 1001000000000000000000001 111111111011000001110000000000001 100000000011000001110111111111111 11110111111111011100000010001 11110111111111011101010010001 11000000110101011100000010001 10000000000000001100000010001 10000000000000001101010010001 11000001110101011111011110N0111 11110111 1110101 101111010001 11111111 1111111 111111111111
이미지 출처
(https://commons.wikimedia.org/wiki/File:Simple_raycasting_with_fisheye_correction.gif)