NO ./textures/NO.xpm
SO ./textures/SO.xpm
WE ./textures/WE.xpm
EA ./textures/EA.xpm
F 127, 127, 127
C 135, 206, 235
111111111111111111111111
1000000000110000000000001
1011000001110000001000001
100100000000000000000001
111111111011000001110000000000001
100000000011000001110111101111111
11110111111111011100000010001
11110111111111011101010010001
11000000110101011100000010001
10001000000000001100000010001
10000000000000001101010010001
11000001110101011111011110N0111
11110111 1110101 101111010001
11111111 1111111 111111111111
Texture
NO, SO, WE, EA 로 시작하는 총 4개의 .xpm파일경로만 명시되어 있어야 한다.Color
F(floor), C(ceiling)로 시작하는 두 가지의 색 정보만 주어져야 한다.,로 구분되어 제공된다.,는 2개만 존재해야 하며, 정수와 정수 사이에 공백의 유무와 개수는 상관없다.F 또는 C와 색 정보는 공백으로 구분된다.Map
0 : 빈 공간1 : 벽공백 : 존재하지 않는 공간N, S, W or E : 플레이어의 초기 위치 및 시점플레이어의 위치 기준 동서남북엔 0 또는 1만 올 수 있다.공백 기준 동서남북엔 공백 또는 1만 올 수 있다.공백은 오직 1하고만 맞닿을 수 있다../cub3D map.cub.cub확장자여야 한다..cub 파일 open()하고 gnl로 한 줄씩 받아오면서 Texture(NO, SO, EA, WE), Color(F, C), Map 정보를 차례대로 받아온다. NO ./path_to_the_north_texture 형식이 맞으면 ft_split()으로 path만 가져와서 해당 파일 open()하고 mlx_xpm_file_to_image()와 mlx_get_data_addr()를 통해 texture 배열에 저장한다. (SO, EA, WE도 마찬가지) 총 4개의 texture 정보(동서남북)를 받아야한다.T << 24 | R << 16 | G << 8 | B) 0xTTRRGGBB 형식으로 변환하여 저장한다. 총 2개의 color 정보(천장, 바닥)을 받아야한다.1)으로 둘러 쌓여있는지0, 1, 공백, pos(플레이어의 초기 위치 및 시선)로만 이루어져 있는지pos정보는 하나만 있는지
0과 공백, pos와 공백은 맞닿을 수 없다.pos 정보(N, S, W or E)에 따라 player의 초기 위치 벡터, 방향 벡터, 카메라 평면 초기화
mlx_hook(info.win, KEY_EVENT_PRESS, 0, &key_press, &info);
ESC key 입력 들어오면 메모리 해제 후 프로그램 종료W, A, S, D key 입력 들어오면 key flag 1로 설정mlx_hook(info.win, KEY_EVENT_RELEASE, 0, &key_release, &info);
ESC key 입력 들어오면 메모리 해제 후 프로그램 종료W, A, S, D key 입력 끊기면 key flag 0으로 설정mlx_hook(info.win, KEY_EVENT_EXIT, 0, &exit_press, &info);
x버튼 누르면 메모리 해제 후 프로그램 종료mlx_loop_hook(info.mlx, &main_loop, &info);
mlx_put_image_to_window() 함수로 창에 띄운다.실행 시 초기 화면
