1.5 특정 키 입력상태를 감지
1.5 특정 키 입력상태를 감지
CheckHitKey 함수 레퍼런스 (주 : 일본어)
선언 |
int CheckHitKey( int KeyCode ); |
기능 |
특정 키 입력을 받는다. |
인수 |
KeyCode : 입력상태를 확인할 키의 키코드 |
반환값 |
1 - 입력됐다. 0 - 입력 안됐다. |
사용 예)
while( 1 ){ if( CheckHitKey( KEY_INPUT_ESCAPE ) == 1 ){ break; } } |
*ESC의 키코드 : KEY_INPUT_ESCAPE
*ESC를 입력하였을 때 while 반복분을 중단
=-=-=-
예제)
#include <DxLib.h> int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode( TRUE ); // 윈도우모드 DxLib_Init(); // DX라이브러리 초기화 int Handle; Handle = LoadGraph( "image/character_00.png" ); DrawGraph( 50, 100, Handle, TRUE ); while( 1 ){ if( CheckHitKey(KEY_INPUT_ESCAPE) == 1 ){ break; } }
DxLib_End() ; // DX라이브러리 종료 return 0 ; } |
제대로 동작하는 경우도 있지만 대부분은 화면이 멈추거나 응답없음오류가 발생할 것이다.
이때에는 ProcessMessage 함수를 추가해준다.
이 함수는 특히 특정 부분을 루푸하는 문장에 사용하게 될 것이다.
수정 예)
#include <DxLib.h> int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode( TRUE ); // 윈도우모드 DxLib_Init(); // DX라이브러리 초기화 int Handle; Handle = LoadGraph( "image/character_00.png" ); DrawGraph( 50, 100, Handle, TRUE ); while( 1 ){ ProcessMessage(); //추가된 함수 if( CheckHitKey(KEY_INPUT_ESCAPE) == 1 ){ break; } }
DxLib_End() ; // DX라이브러리 종료 return 0 ; } |
실행결과
ESC키를 통해 프로그램의 종료가 가능하다.
이 외에 윈도우의 x버튼을 클릭했을 때 프로그램을 종료시키는 예제는 다음과 같다.
#include <DxLib.h> int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode( TRUE ); // 윈도우모드 DxLib_Init(); // DX라이브러리 초기화 int Handle; Handle = LoadGraph( "image/character_00.png" ); DrawGraph( 50, 100, Handle, TRUE ); while( 1 ){ if( ProcessMessage() != 0 ){ break; } }
DxLib_End() ; // DX라이브러리 종료 return 0 ; } |