본문 바로가기

Mobile Develop/Windows Programing

루프문 동작중 키보드 입력으로 탈출하기

루프문을 이용해서 처리를 하다보면
부득이하게 루프문을 강제 종료시켜야 할 때가 있다

내부적으로 처리하다가 FALSE뜨면 종료되겠지만
그게 아니라면 사용자가 직접 루프문 탈출을 걸어줘야 하는데
처리량이 많은 루프문이면 키보드 입력 이벤트를 감지 못한다

그때 이걸 쓰자

for (;;)
{
     if (GetAsyncKeyState(VK_ESCAPE)) break;
     /* 처리할 것 들 */
}


간단한 게임들이 대부분 이걸 쓴다고 한다;

뭐 복잡찬란한 프로그램들은 Direct Input을 쓴다는데....
여기서는 그건 필요 없으니 Pass~!

무조건 탈출하게 되어있지만, 조금만 수정하면 1회 진행까지는 하게 할 수 있다

BOOL bLoop = TRUE;
while(bLoop)
{
     if (GetAsyncKeyState(VK_ESCAPE)) bLoop = FALSE;
     /* 처리할 것 들 */
}

중지 명령이 떨어져도 하던건 마무리 하고 종료한다

Do~While 써도 된다고 하는데 뭐...
그거야 생각대로 하면 되고~