일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 킥스타터
- 게임제작
- coroutine
- 리눅스
- 자율비행
- 드론
- 스카이트래커
- 포크스푼
- 이브뉴스24
- 오브젝트이동
- 이브온라인
- 번역
- DX라이브러리
- C언어
- 언성스토리
- centos
- 유루캠
- 데포르메
- 유니티
- 온라인
- 이브
- inputsystem
- 미타니
- 미니적도의
- This is EVE
- 천체사진
- 오픈스택
- 점상
- 라즈베리파이
- UI
- Today
- Total
게임개발 예제모음
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 ; } |
'DX라이브러리' 카테고리의 다른 글
1.7 백그라운드처리를 통한 이미지 움직이기 (0) | 2014.12.22 |
---|---|
1.6 백그라운드 처리 없이 이미지 움직이기 (0) | 2014.12.22 |
1.4 이미지를 메모리로 호출하여 표시 (0) | 2014.12.19 |
1.3 이미지 표시 (0) | 2014.12.19 |
1.2 윈도우 표시 (0) | 2014.12.19 |