Cub3d - 서브젝트 분석하기

 

http://users.atw.hu/wolf3d/

 

Wolfenstein 3D

 

users.atw.hu

참고 : 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개 이상 해야됨!!