가장 쉽게 생각할 수 있는 기본적인 방법으로는
bool로 플래그를 두고
함수에 들어가면 true로 세팅하고
매 루프마다 clear를 해주는 방법이 있다.

그러나 이게 영 비효율적으로 보이는지라.
timeGetTime()으로 시간을 기억해두고 ( 물론 매번 호출하진 않고 루프마다 한번 호출해서 전역에 저장해둔다 )
시간이 다르면 first time이므로 멤버 변수로 현재의 time값을 저장해둔다..
라는 생각이었는데

api에서는 잘돌아가는게 mfc에선 정상적이지 않는 현상이 발견되었다.
timeGetTime()의 한계-_-(실제로 timeGetTime은 밀리세컨드 단위이기때문에 1000프레임 이상의 수치는 처리할 수 없다.. 그 이하의 수치 일때 도 같은 Time이 들어올 수 있다. )일수도 있겠지만 IDLE메세지가 들어왔을때 함수 호출을 하게 해놔서 idle이 한번의 메세지루프에 여러번 들어올수 있다(라는 생각은 전혀 안해봤었는데-ㅅ-)

어쨋건 그런 연유로 그냥 DWORD로 매 루프마다 1씩 올려주는 카운터를 만들고 카운터를 기억하게 했다.

애매한 time보다야 확실하긴 하다만
왠지 쓸데없는 전역변수가 늘어난거같은 느낌은 지울 수 없다-ㅅ-;;

'게임개발 > ' 카테고리의 다른 글

Cubemap을 이용한 SkyBox  (4) 2005.07.11
Increase, Decrease Macro  (0) 2005.07.08
Two-Sided Polygons  (0) 2005.05.20
nVidia 2005년 4월 뉴스레터 팁  (0) 2005.05.19
부스트의 shared_ptr을 hash컨테이너의 인자로 쓰기  (0) 2005.03.15

+ Recent posts