DX에서 키보드 입력을 받게 될때,
API함수를 사용해 보았는데,
자꾸 까먹게 되어 따로 포스팅을 한다.
키보드 입력을 처리 하는 함수로는
GetAsyncKeyState 함수와 GetKeyState가 존재 하는데
GetAsyncKeyState에 대해서 간단하게 필요한 부분만
빠르게 포스팅하도록 하자.
주로 GetAsyncKeyState를 사용할 때 함수만 딸랑 쓰는게 아니라
추가적인 연산을 해주게 되는데,
if( GetAsyncKeyState( VK_DOWN ) & 0x0001 ) // 이렇게 쓰거나
if( GetAsyncKeyState( VK_DOWN ) & 0x8000 ) // 이렇게 쓴다.
GetAsyncKeyState는 키가 눌렸을 때 GetAsyncKeyState의 0x8000 bit가 1이된다.
그리고,
GetAsyncKeyState가 호출되었을 때부터 다음 GetAsyncKeyState가 호출될 때까지
키가 계속 눌려 있는 상태라면 0x0001 bit는 0, 그렇지 않은 경우는 1이 된다.
즉, 키를 한번만 눌리게 하고 싶다면, &연산을 사용 0x0001에 대해 검사하면 될것이고,
한번 눌릴키가 쭉 눌렸을때 무언가 반응하고 싶다면
0x8000 을 사용하면 될것이다.
상황에 따라 적절하게 사용하도록 하자.
'프로그래밍 > API' 카테고리의 다른 글
API-ini파일 (1) | 2010.05.10 |
---|---|
API-알파값(비트맵 이미지 투명화) (0) | 2010.05.10 |
API-애니메이션 (0) | 2010.05.10 |
API-PlaySound (0) | 2010.05.10 |
API-더블 버퍼링 (0) | 2010.05.10 |