서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D

기초교육과정 종료. 포트폴리오 제작 12일

WDmil 2023. 8. 28. 23:32
728x90

진행중인 작업

UI

3. 핸드, 상점, 전장 UI 생성

 

진행 예정 작업

 

객체

진영 생성시 객체 위치

전투 생성시 객체 위치

 

전투 AI

1. 전투로직

2. 스킬로직

 

그외

투사체

마우스 위치에 따른 카메라 이동

전투시 자동카메라 이동 설정

적 난이도 생성

상점 카드 생성

 

완료된 작업

 

UI

텍스트 출력엔진 생성

텍스트 출력엔진의 외곽선 생성 쉐이더

 

UI

1. 팝업바 생성

2. 상태창 생성

 

버튼 기본 생성

기본 마우스 포인터 연동

캐릭터 사망시 삭제처리 연동

HP 표시 [ HP바 재처리 ]

데미지 연산중복 처리

데미지 연산 ( 객체질량 * 운동량 )

OBB충돌처리

각 객체간 부모자식관계 재처리

객체 공격 딜레이

공격시 오브젝트 회전처리

객체 공격

객체 이동

애니메이션 재생

객체 생성


숫자 출력 엔진을 만들어야한다.

 

원래 쓰던 Framework에서는 Font값이 정상적으로 출력되나, 실시간 수정이 잘 동작하지 않음을 확인하였다.

 

그럼으로, 실시간으로 uv맵을 수정하여 도출할 수 있는 FontEngine을 제작해야한다.

 

상속관계 설계

 

문자마스터 -> 문장 -> 단어

 

문자마스터 에서 폰트값을 저장한다.

문자 마스터는 모든 문자 맵의 각 문자의 uv값과 offfset을 가진다.

문자 마스터는, 모든 문자의 srv값을 가진다.

위의 문자의 렌더에 필요한 모든 데이터를 아래부터 단어객체 라고 칭한다.

문자마스터는 std::map<wchar_t, 단어객체> Wordmap 을 가진다.

 

문장은 한 문장의 wstring 값을 가지고, 단어list를 가진다.

문장은 Render시, 각 단어를 Render시킨다.

문장은 Update시, 가지고있는 wstring값대로 단어list* 를 참조하여, 단어list안의 wchar_t를 해당되는 문자로 다시 채운다.

만약, 단어list가 부족하다면, 더 추가한다.

만약, 단어list가 남는다면 남는 list를 제거한다.

모든과정이 종료되면, 각 단어의 Update를 호출한다.

 

각 단어는 자신의 Vector3 값과 wchar_t단어를 가진다.

단어는, Update시 wchar_t값을 참조하여. 문자마스터에서 해당되는 문자의 wchar_t의 단어객체 주소를 받아온다.

단어는 Render시 각 그래픽 파이프라인에, 해당되는 단어객체의 값들을 대입하여 출력하게된다.

 

Vertex Buffer

단어의 Vectex값을 기입하게 된다. 단어객체에서 참조.
Index Buffer

단어의 렌더순서값을 기입하게 된다. 0,1,2,0,3,1 순서고정
Vertex Shader

해당되는 Vectex값의 월드, 뷰, 프로젝션 행렬을 곱할 Shader이다.
Pixel Shader

해당되는 Piaxer값의 색을 결정할 Shader이다.

InputLayout

해당되는 데이터의 모든 데이터의 순서, 수 등 형식을 저장한다.
World Buffer

현재 위치한 World값을 가지는 Buffer이다.
Shader Resource View

단어객체의 srv의 주소값을 참조하여 생성하게 된다.

 

모든 그래픽 파이프라인을 그대로 작성하기에는, 아직 배워야할것 들이 너무 많다.

 

DIrectX의 기초부터 나만의 Framework를 작성하는걸 다시 시도해야할꺼같다.

728x90