Programming Tip

GetAsyncKeyState 함수 일정 시간 간격으로 입력 받기

BlueSwamp 2011. 3. 2. 11:08
반응형
GetAsyncKeyState로 키입력 처리할때 키를 누르고 있으면 연속으로 눌리는 현상을 막기위해 

Time.h 파일에 있는 clock을 사용한다.

clock 이란 프로그램이 실행된 뒤로 시간이 얼마나 흘렀는지 ms(1/1000초) 단위로 반환하는 함수

clock_t는 clock()의 반환 값을 담는 변수 타입으로 int로 해도 문제 없다.

소스
#include <Windows.h>
#include <Time.h>


int
KeyTime = 100;
clock_t KeyTimeCheck[256];


bool
IsKeyDown(int vKey)
{
        clock_t now = clock();

        
        if(GetAsyncKeyState(vKey) & 0x8000 &&
           now - KeyTimeCheck[vKey] >= KeyTime)
        {
                KeyTimeCheck[vKey] = now;

                return TRUE;
        }        

        return FALSE;
}

반응형