응애맘마조

221223 강의 본문

공부/2D강의

221223 강의

TH.Wert 2022. 12. 23. 23:34

어제 말했던대로 오늘 DirectX를 나가기 전 Framework를 받았습니다.

 

sln 파일을 열면 2DFrameWork가 있고 Game1, 2가 있습니다. 하지만 이대로 실행하면 오류가 납니다. 왜냐하면 시작 프로젝트가 2DFrameWork로 되어있기 때문입니다. Game1, 2로 시작 프로젝트를 해야 정상적으로 실행이 됩니다.

여기서 2DFrameWork는 정적 라이브러리(lib)파일이고 Game1, 2는 응용 프로그램(exe)파일입니다.

정적 라이브러리를 작성하고 빌드된 것을 가져가서 사용합니다. 여기서 컴파일을 할 때 한 번 했던 컴파일 된 파일은 또 다시 하지 않습니다. 수정된 코드가 있는 파일만 다시 합니다.

하지만 만약에 프레임워크를 수정하면 다시 처음부터 컴파일을 시작합니다. (프레임워크를 수정할 일은 거의 없지만 아예 없지는 않습니다.)

 

학원에서 강사님은 듀얼모니터를 사용중이라서 프로그램 실행 창이 모니터 하나 쓰는 수강생들과 다르게 많이 다를 수 있습니다. 그렇기 때문에 만약 실행을 하더라도 모니터에 뜨지 않을 수도 있습니다. 그럴 경우 게임이 만들어진 Game1이나 2에 들어가면 Window.ini 파일이 있습니다. 거기서 Pos값을 변경하면 됩니다.

 

프레임워크를 들어가면서 영점의 위치, x축, y축도 평소에 아는 범위로 변경되었습니다.

(영점이 좌측 상단이 아니고 중앙이 되었으며, y축도 API처럼 아래로 내려가야 값이 커지는게 아니고 올라가야 값이 커지게끔 되었습니다.)

 

여기서 주의할 점은 축선을 그릴 때 색깔을 변경하지 않는 것을 추천한다고 합니다.

(X, Y, Z값을 R, G, B 순서대로 쓰라고 했습니다. 그래야 헷갈리지 않는다고 합니다. 예시로 언리얼 엔진도 이렇게 색깔을 사용하고 있습니다.)

 

프레임워크 안에 들어가면서 본 적 없는 함수들이 나왔습니다.

isFilled는 색상을 채우는 변수입니다. (기본값은 true입니다.)

isVisible은 객체를 보이거나 안보이게 해주는 변수입니다.

(false로 한다고 해서 충돌처리가 안되지 않습니다. 단순히 모니터상에만 보이지 않는 것 뿐입니다.)

color는 Color()을 사용합니다. (R, G, B값을 넣는데 0 ~ 255를 넣지 않고 0 ~ 1 사이의 값을 넣습니다. 넣고싶은 RGB값을 255로 나누면 값이 나오게 됩니다. 이것을 정규화 한다고 합니다.)

pivot은 방향을 의미합니다. 원점을 기준으로 SRT 했을 때 중점의 위치를 변경합니다.(이 함수는 특히 게이지 바를 만들 때 사용합니다.)

 

과제 풀이를 하면서 오브젝트 풀링(Object Pooling)에 대해 배웠습니다.

객체를 모아놓고 꺼내서 사용한다는 의미입니다.

모두 사용을 하고 R키를 눌러서 재장전을 하면 다시 회수하는 방식입니다.

원래 false로 되어있던 오브젝트를 true로 바꿔서 활성화 시킵니다.

 

그동안 쓰던 방식에서 프레임워크로 바뀌면서 어렵거나 헷갈리는 부분도 꽤 있을겁니다.

강사님도 그걸 아시고 적응하는 기간과 함께 DirectX로 넘어가기 전까지 게임에서 사용하는 기능들을 알아보고 넘어간다고 했으니 크게 문제 될 일은 없을 것 같습니다.

 

읽어주셔서 감사합니다.

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

221227 강의  (0) 2022.12.27
221226 강의  (0) 2022.12.26
221222 강의  (0) 2022.12.22
221221 강의  (0) 2022.12.22
221220 강의  (0) 2022.12.20
Comments