응애맘마조

221214 강의 본문

공부/2D강의

221214 강의

TH.Wert 2022. 12. 14. 23:38

어제 말했던 대로 오늘은 델타를 했습니다.

델타는 변화량이라고 합니다.
하지만 강의에서 쓰게 될 델타는 초당 변화량입니다.

프로그램 실행에서 사용되는 프레임워크에는 주기라는 것이 있습니다. 여기서 주기는 반복되는 구간을 말합니다.
사용하는 SetTimer에서 밀리초 단위에 따라 움직이는 정도가 달라집니다. 여기서부터 FPS와 관련이 되어 있습니다.

하지만 프레임 단위로 움직이게 되면 문제가 발생할 수도 있습니다. 게임이라면 실행 자체에 문제는 없지만 객체가 모두 제각각 움직이게 될 수도 있어서 플레이 환경에 문제를 발생시킬 수도 있습니다.
게임을 만들 때에는 밀리초 단위를 사용하지 않고 마이크로세컨드를 사용합니다.

초당 이동하는 양이 달라지면 안 되고 객체마다 제각각 움직이는 양이 달라지면 안 되기 때문에 델타에 사용하는 타이머에도 싱글톤을 사용합니다.

타이머에서 델타 값은 현재 시간에서 지나간 시간을 뺀 값이 됩니다.
앞으로 함수 앞에 Get이라는 이름이 붙어 있으면 수정 할 일이 없습니다.
Chronometry는 시간 측정 값입니다.
그렇게 해서 전체 시간은 구했던 델타 값을 전부 더하면 됩니다.

메인cpp에서 메시지 루프를 돌고 있는 구간에서 창을 닫지 않으면 계속 호출을 하게 되어서 무한정 메시지를 출력하게 되는데 이 else 구간을 한 프레임으로 잡을 수 있습니다. 이 한 프레임 안에서 프레임 값 출력과 키보드 입력, 정보의 갱신과 모니터에 출력하는 그래픽을 표현합니다.

Chronometry 함수 안에 숫자를 입력하게 되면 그 값이 고정 프레임이 됩니다.
프레임에 상관없이 시간당 똑같이 움직이기 위해서입니다.

출력을 할 때 TextOutA를 사용했는데 여기서 A는 아스키코드를 의미합니다.
자주 쓰던 c_str은 C언어 스타일로 변환한다는 의미입니다.

오늘은 델타만 하게 되어서 내용이 짧습니다.
내일은 행렬을 합니다. 미사일을 발사하고 포물선으로 날아가는 것 등등 모두 행렬을 이용합니다.
읽어주셔서 감사합니다.

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

221216 강의  (0) 2022.12.17
221215 강의  (0) 2022.12.16
221213 강의  (0) 2022.12.14
221212 강의  (0) 2022.12.13
221209 강의  (0) 2022.12.10
Comments