ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [cub3d] 과제 파악하기
    42seoul 2020. 12. 25. 17:32

    21일만에 ft_server를 탈출하고

    드디어 시작하는 cub3d..

    일단 ↓이것은 heryu님의 cub3d 평가를 할때 이렇게 공부하면 된다고 알려주신 것

    taelee42/mlx_example
    (42wiki 참고)

    1. mlx man페이지 보고 공부
    2. mlx예제 보고 따라함
    3. mlx예제를 안보고 함

    이후

    -> raycasting 공부
    (한글번역, 365kim)


    평가요소 : 큐브쓰리디

    큐브쓰리디 평가하면서 피평가자 분들이 본인 실수하셨던 부분이나

    팁같은거 알려주셔서 적어놓은 것

    과제 들어가기전에 읽으면 이해가 안가는 부분이 있을 수 있습니다.
    제가 대충 받아적어놓은 것이라 이해안가는 부분은 넘어가시고 과제먼저 하셔도 될 거 같습니다.

    주의 사항

    확장자 주의)
    실행시킬때 ./maps/map.cub —save
    ./[실행파일이름] [옵션]

    main문에서 argv : 두개를 받을 수 있음

    1. [이름].cub —> 이름은 상관없는데 확장자가 .cub여야함(아니면 fail)
      1. dash- dash- save : 옵션 (맨처음 화면 비트맵으로 캡쳐하도록) -> main문에서 처리해야함
      2. 그런데 —save123 같은거는 되면 안됨 -> main문에서 ‘—save\0’까지 완전히 동일한지 검사해야함.

    앞뒤양옆의 구현(key)

    fps 게임
    앞뒤양옆으로 가는 것 구현해야 함(쓸 수 있는 키가 정해져 있음)
    앞뒤로 가는 속도, 회전속도 -> 속도도 자기가 알아서 정함.

    재질과 스프라이트

    벽에 입힌 이미지는 ? 동서남북 재질을 다르게 해라
    스프라이트 ? -> 3d 화면속에서 놓여진 아이템
    아이템은 자기 맘대로? yes, 이미지도 자기 마음대로
    보너스 -> 위 아래도 원하는 질감으로 바꾸면 됨
    (tip)위 아래 채우는 것은 반씩 색칠하면 됨

    정보가 담긴 파일(map file)

    1. 동서남북, 바닥 하늘(rgb 색상 or xpm확장자인 image파일의 경로),

    *보통 울펜슈타인 게임에서 제공하는 기본이미지 쓴다.
    2. map 정보(0,1,2)

    예시
    1111111111111
    1000002001
    11111000001
    100s000001
    10200011111
    1000000001
    1111111111111

    0 -> 빈공간
    1 -> 벽
    2 -> 스프라이트
    (tip) 스프라이트를 벽앞에 두어도 잘 나와야함
    벽이랑 겹치지 않도록 0.5 이동해서 나오도록

    위와 같은 파일을 만들어 놓고 -> 프로그램에서 불러와 파싱하여 사용
    s: 유저시작위치 -> 두개 이면 에러처리
    (tip)*iwoo님 -> map tester사용

    제출시

    폴더에 정리해도 됨 /

    종료

    esc/ 엑스 창을 누르면 꺼져야됨
    다른 거 더 추가해도 됨

    에러를 리턴하는 경우

    1. 실행파일의 확장자 명이 .cub와 다를때 에러 나오도록
    2. map 파일에 문제가 있을때

    -> 플레이어가 두 명일때
    -> 허용된 범위 안에서 작동되지 않는경우(예를들어 범위가 0,0인경우)
    -> 범위가 201-640 : 정상작동 -> 문제 푸는 사람이 임의로 정하는 것임
    -> 범위를 벗어나면 헤더파일에 정해놓은 기본값으로 나오도록

    • 보너스까지 하면 함수 사용 다 할 수 있음!
    • 맥의 해상도를 가져와서 -> 그 사이즈로 켜지도록 할 수 있다.

    메모리 누수 체크

    보너스

    보너스까지 하면 함수 다 가져와서 쓸 수 있음
    벽충돌 -> 벽을 넘어가지 않고 벽 앞에서 플레이어 위치가 멈추도록
    하늘, 바닥도 질감넣기
    스프라이트 종류 여러개 만들기
    슈퍼마리오 게임처럼 사과 앞을 지나가면 먹는다던지 식으로 게임을 만들면 됨

    이미지 파일 바꿔보기
    존재하지 않는 경로의 경우 -> ? -> 에러가 나오는 지 체크
    스프라이트 여러개 넣어보기
    바닥색깔이랑 하늘색깔 핸들링
    실행할때 인자 다르게 넣어보기
    손이나 얼굴을 키보드위에 굴려보기
    map을 수정해보라

    기타

    라이브러리)
    mlx 두가지 있는데 서로 함수 들어있는게 약간 다름
    하나만 쓰라는 이야기는 없음.
    make 할때 warning뜨는 이유 : mlx 함수가 구 버전이라고 알려주는 것
    mlx 함수가 구버전, 신버전 있는데 보통 구버전으로 구현한 사람이 많아서
    그리고 구버전이 안정적일것 같아서 구버전 썼다고 하셨음.
    -> 그리고 클러스터에서는 경고 안뜬다.
    -> 혹은 로컬에서도 미리 mlx 을 make 해놓고 참조하면 안뜸


    과제관련 게시글 모음

    1. 수학공부

    2. Makefile -L option, OpenGL, AppKit

    3. 과제시작하기

    4. map parsing


    '42seoul' 카테고리의 다른 글

    [cub3D] Makefile  (0) 2021.01.05
    [cub3D] 벡터  (0) 2020.12.28
    [ft_server]Dockerfile 작성 - 참고사항  (0) 2020.12.21
    [ft_server] 기타..(워드프레스, MySQL, MariaDB, phpMyAdmin)  (0) 2020.12.07
    [ft_server] 도커에 대해서  (0) 2020.12.07

    댓글

Designed by Tistory + Edited by Juepark