응애맘마조

230207 강의 본문

공부/2D강의

230207 강의

TH.Wert 2023. 2. 7. 23:37

오늘부터 게임의 기능을 작은 것부터 조금씩 알아봤습니다.

 

먼저 UI입니다.

UI는 마우스와 충돌했을 때나 눌렀을 때의 역할을 합니다. 고정된 창에서만 프로그램이 동작한다면 상관이 없지만 카메라의 영향도 받는다면 위치가 달라지게 됩니다. 그래서 창에서 x, y 좌표의 값을 빼야 카메라가 움직여도 제대로 된 위치에서 동작하게 됩니다.


Texture입니다.

이미지와 관계가 있으며 싱글톤입니다. 픽셀 수도 Texture이며 자원을 불러오는 클래스입니다. SRT만 다를 뿐이고 자원을 제각각 사용하게 되면 효율이 좋지 않기 때문입니다. 그래서 배열로 쓰게 된다면 선형 구조이기 때문에 처음부터 끝까지 탐색을 하게 되기 때문에 트리나 해시로 탐색이 용이한 구조로 되어있는 STL의 map을 사용하는 것이 좋습니다. map은 1:1 매치로 되어 있으며 key와 value로 사용됩니다. first와 second로 표현합니다. 또한 키 값을 인덱스로 사용 할 수 있기 때문에 많이 사용되는 자료구조 중의 하나입니다.


Sound입니다.

위의 Texture 구조와 동일하게 사용합니다. DirectX 안에 컴포넌트로 XAudio 2를 지원 하지만 DirectX는 C++로 저수준 언어로 이루어졌기 때문에 따로 fmod를 사용합니다. fmod도 사운드마다 채널이 같이 있고 실행 중 마스터 볼륨을 조절하면 갖고 있는 모든 소리가 조절됩니다.


colOnOff입니다.

충돌처리와 관계가 있는데 항상 충돌이 필요한 상황이 아닌 경우도 있습니다. bool로 되어 있어서 필요하지 않은 경우 false로 하고 필요하면 true로 사용하면 됩니다.


reverseLR입니다.

이미지를 사용하다보면 좌우가 반전되었을 때가 필요할 때도 있습니다. 좌우 이미지를 따로 만들어도 되지만 이미지의 x값을 바꾸어 y축으로 돌리면 좌우 반대를 사용할 수 있습니다. 하지만 예를 들어서 플레이어가 있고 무기를 들고 있으면 플레이어와 무기가 각각 따로 렌더링이 되는데 이때 reverseLR을 사용하면 플레이어는 반대로 돌지만 무기는 돌지 않고 방향만 따로 돌게 됩니다. 그럴 땐 둘 다 묶어서 히트박스를 만들어 그 히트박스를 반전시키면 됩니다.

yawpitchroll을 사용하면 됩니다. 특히 3D에서 많이 사용하는데 행렬은 순서를 다르게 곱하면 안되기 때문에 왼손 좌표계로 해서 y→xz 순서로 곱하면 됩니다.

 

내일은 폰트와 조명에 대해서 한다고 합니다.

읽어주셔서 감사합니다.

'공부 > 2D강의' 카테고리의 다른 글

230210 강의  (0) 2023.02.10
230208 강의  (0) 2023.02.08
230206 강의  (0) 2023.02.06
230203 강의  (0) 2023.02.03
230202 강의  (0) 2023.02.02
Comments