게임 제작상의 루프 코딩은 대부분 아래와 같을 것이다.
여기서 while(1) 마저도 아깝다면..
이렇게 해라. 이렇게 하면
의 클럭수 (대략 14클럭)를 줄일 수 있게 된다.
단, goto 가 보기 싫은 코드의 예술가가 아니라면.. 말이다.
- MSG msg;
- while (1)
- {
- if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
- if(msg.message == WM_QUIT) break;
- DispatchMessage(&msg);
- }
- else
- {
- Loop();
- }
- }
여기서 while(1) 마저도 아깝다면..
- LOOP_ING:
- if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
- {
- if(msg.message == WM_QUIT) goto LOOP_EXIT;
- DispatchMessage(&msg);
- }
- else
- {
- Loop();
- }
- goto LOOP_ING;
- LOOP_EXIT:
이렇게 해라. 이렇게 하면
- 00411AA3 mov eax,1
- 00411AA8 test eax,eax
- 00411AAA je WinMain+6Fh (411AEFh)
의 클럭수 (대략 14클럭)를 줄일 수 있게 된다.
단, goto 가 보기 싫은 코드의 예술가가 아니라면.. 말이다.
[출처] 한 프레임도 아깝다면... (게임 개발자 네트워크 (jzsdn)) |작성자 자존심