참고 : wolf3d (cub3d와 동일한 방식을 사용한 옛날 고오급 게임을 참고하세요!)
필수 파트
프로그램명 | cub3d |
들어갈 파일 | 필요한 모든 파일 |
Makefile | all, clean, fclean, re, bonus |
Arguments | a map in format *.cub |
외부 함수 | open, close, read, write, malloc, free, perror, strerror, exit math 라이브러리에 있는 모든 함수 MinilibX의 모든 함수 |
Libft 사용 | 가능 |
설명 | 1인칭 시점에서 미로 내부의 현실적인 3D 그래픽을 만들어야합니다. Ray Casting 원칙을 사용하세요! |
기타 | 반드시 miniLibX를 사용해야 합니다. (운영체제에서 이용 가능 한 것 또는 그 소스) 만약 소스를 이용해 작업하기로 했다면, libft의 공통 지침과 같은 규칙을 따라야 할 것입니다. |
1. 자연스러운 윈도우 관리 -> 최소화, 다른 창 전환 등등
2. 동서남북에 따라 다른 벽 텍스처
3. 벽 대신 아이템(sprite) 표시
4. 바닥 천장 다르게!
5. 두 번째 인자가 --save일 때 첫 번째 렌더링된 이미지를 bmp 형식으로 저장
6. 두 번째 인자가 업으면 다음 규칙을 지키기:
6.1 왼쪽/오른쪽 화살표 키로 시점 돌리기
6.2 WASD로 시점 이동
6.3 ESC로 종료하기
6.4 창 상단 표시줄의 종료 버튼(빨강)으로 프로그램이 종료되도록
6.5 지도에 표시된 화면이 디스플레이 해상도보다 크면 디스플레이 해상도에 따라 윈도우 크기 결정
6.6 miniLibX의 이미지 적극 권장
7. .cub 확장자 (화면에 대한 설명)를 첫 번째 인자로 받아들이기
7.1 지도는 4가지 문자로만! : 0(빈 공간) 1(벽) 2(아이템),
N/S/E/W로 플레이어의 출발 위치/태어난 위치에서 바라보는 방향
7.2 지도의 바깥은 모두 1임. 아니면 오류 반환
7.3 지도 내용을 제외하고는 하나/이상의 빈 줄로 분리될 수 있음
7.4 마지막에 있어야 하는 지도 내용을 제외하곤 어떤 순서로도 파일 안에 구성될 수 있음
7.5 각 유형의 정보는 하나 이상의 공백으로 구분
7.6 공백은 지도의 유효한 부분이고 처리는 우리몫!
7.7 각 요소의 첫 번째 정보는 유형 식별자(하나 또는 둘)로 구성되며, 규칙은 다음과 같음
7.7.1 해상도 : R 1920 1080
[구분자 R] [x 렌더 크기] [y 렌더 크기]
7.7.2 동/서/남/북 쪽 텍스처 : EA/WE/SO/NO ./path
[구분자 EA/WE/SO/NO] [텍스처 경로]
7.7.3 아이템 텍스처 : S ./path
[구분자 S] [텍스처 경로]
7.7.4 바닥 색상 : F 220,100,0
[구분자 F] [RGB 색상]
7.7.5 천장 색상 : C 225,10,0
[구분자 C] [RGB 색상]
# ex.cub
R 1920 1080
NO ./path_to_the_north_texture
SO ./path_to_the_south_texture
WE ./path_to_the_west_texture
EA ./path_to_the_east_texture
S ./path_to_the_sprite_texture
F 220,100,0
C 225,30,0
1111111111111111111111111
1000000000110000000000001
1011000001110000002000001
1001000000000000000000001
111111111011000001110000000000001
100000000011000001110111111111111
11110111111111011100000010001
11110111111111011101010010001
11000000110101011100000010001
10002000000000001100000010001
10000000000000001101010010001
11000001110101011111011110N0111
11110111 1110101 101111010001
11111111 1111111 111111111111
8. 잘못된 구성이 있으면 "Error\n" 반환 후 직접 정한 오류 메시지 표기 후 종료
보너스 파트
1. 벽 충돌
2. 스카이박스
3. 바닥/천장 텍스쳐
4. HUD
5. 위 아래 보기 기능
6. 점프/웅크리기
7. 거리에 따른 그림자 효과
8. 생명 바
9. 많은 아이템
10. 물체 충돌
11. 물체/트랩을 주웁으로써 포인트 획득/생명력 감소
12. 여닫이문
13. 비밀 문
14. 총 발사 애니메이션/아이템 애니메이션
15. 레벨
16. 사운드이펙트, 배경음악
17. 마우스 시점 전환
18. 무기와 빌런 (싸움 기능)
모든 보너스 점수(15점)을 얻으려면 14개 이상 해야됨!!
'42Seoul > cub3d' 카테고리의 다른 글
Cub3d 학습일지 - 4 - 벽 영상 렌더링하기 (0) | 2021.01.01 |
---|---|
Cub3d 학습일지 - 3 - 레이캐스팅 (0) | 2020.12.30 |
Cub3d 학습일지 - 2 - 맵과 플레이어 움직임 (0) | 2020.12.28 |
Cub3d 학습일지 - 1 - 삼각법 리뷰하기 (1) | 2020.12.28 |
Cub3d 학습일지 - 0 - Introduction (0) | 2020.12.27 |
Comment