팀) DirectX 9(Software Rendering) 카트라이더 모작
DirectX 9 3D (Software Rendering)
제작기간 : 약 3주
제작 인원 : 4인 (팀장)
카트라이더(네모네모) 분할화면 2인 플레이
____________________________________________________________________________
나의 구현 내용
1. 플레이어 기능 (배찌, 디지니 동일)
[속도]
-> 가속 : 전진 키를 누르면 운동법칙 (v=at)을 이용하여, 속도를 증가 시키도록 구현
이때 속도 구간에 따라 가속도(a)를 다르게 적용
-> 감속 : 속도가 0일 때를 제외하고, 실시간으로 진행 방향의 반대방향으로 일정하게 감속효과(저항) 구현
[회전(드리프트)]
-> 회전에도 속도를 적용하여 일반 좌우키와 드리프트시 회전되는 속도를 다르게 적용
드리프트 시에는 회전속도를 높여 방향을 많이 꺾이게 하지만, 운동 제1법칙인 관성을 모방하여 끌림 효과 구현
[충돌]
-> OBB 충돌로 차체가 회전해도 자연스러운 충돌 구현
-> 펜스 충돌 시, 충돌하기 직전 위치로 되돌린후 반대방향으로 속도를 줌으로써 튕겨내는 효과 구현
드리프트를 할 때 충돌 시, 입사각 반사각을 계산하여 반사각 방향으로 튕겨내는 효과 구현
-> 차체끼리 충돌시 작용, 반작용에 따른 반대방향으로 힘 구현
2. UI 기능
[Lap 체크]
-> 중간 중간마다 보이지 않는 체크포인트를 설치하여, 모든 체크포인트를 지나고 출발점으로 와야 Lap이 증가하도록 구현
[실시간 순위 체크]
-> 1. Lap의 갯수 비교 / 2. 체크포인트를 지나간 갯수 비교 / 3. 해당 체크포인트와의 직선거리 비교
위의 순서대로 비교해 실시간 순위체크 구현
[속도]
-> 각 자리수를 10의 n승(일의자리를 구할경우 n=0)으로 나눈값에서 10으로 나눈 몫의 나머지로 구하여 속도 출력
3. 이펙트
[스키드마크]
-> 드리프트를 하는 동안, 바퀴 위치에 Vertex를 Lock, Unlock으로 업데이트하여 스키드마크 구현
4. 툴
[MFC를 이용한 맵 및 모델 툴 보조]
맵 툴 편의기능 : Terrain의 전체 높이 적용, 다중 높이 적용 등
모델 툴 기본기능 : 큐브나 렉트의 크기, 회전 및 위치 조정, 생성시 이름별로 레이어를 분리하여 오브젝트 선택 기능 등
5. 게임 플레이 기능
[아이템전 박스 생성]
-> 스레드를 이용하여 일정시간마다 전체 아이템박스를 삭제하고, .dat파일에 저장되어있는 위치값에 아이템박스를 재생성