보통 간단한 이동을 구현한다면, 좌로 이동할 때 x-=1; 아래로 이동할 때 y+=1;처럼 코딩하기 마련이다. 그러니까, if(GetAsyncKeyState(VK_LEFT))x-=1; else if(GetAsyncKeyState(VK_RIGHT))x+=1; if(GetAsyncKeyState(VK_UP))y-=1; else if(GetAsyncKeyState(VK_DOWN))y+=1; 이런식으로 말이다. 그런데 저 말대로 한다면 상하좌우 각각의 4방향 이동은 문제 없겠지만, 4가지 대각선 방향을 이동할 때 약간의 문제가 생긴다. 상하좌우의 경우는 각각 1만큼 움직일 테지만, 대각선은 두 키의 명령이 같이 이행됨에 따라 결과적으로 root 2만큼 움직여 버리는 것이다. 이를