キー入力
キーボード、マウス、ジョイスティックの状態を調べるにはKeyIn()
を使います。
引数に調べたい機器を指定します。
引数を省略した場合は
KI_NORMAL
になります。
KeyIn()
の
引数に指定できる定数一覧
KI_NORMAL
= 0,
キーボード+ゲームコントローラー×
1
KI_MOUSE,
マウスのクリック入力
KI_KB,
キーボード(
主にアルファベット)
KI_KB2
キーボード(KI_KB
の続き)
戻り値に指定した機器の状態が返されます。
調べたいキーやボタンなどを表す定数とAND
をとって0
でなければ
そのボタンは押されています。
定数はsgl.h
を参考にしてください。
キーやボタンなどを表す定数一覧(一部)
KeyIn(
KI_NORMAL)の場合
KEYIN_UP
上
KEYIN_DOWN
下
KEYIN_RIGHT
右
KEYIN_LEFT
左
KEYIN_ESC
エスケープキー
KeyIn()
& KEYIN_ESC
とするとESC
キーが押されているか調べられます。
押されていれば0
以外が返ります。
if
文では0
以外はtrue
として扱われます。
ソース
#include "sgl.h"
int APIENTRY
WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, int )
{
if
(!InitLibrary( true, NULL, hInst ))
return 1;
while ( Run() &&
!(KeyIn() & KEYIN_ESC) )
{
Cls();
DrawString( 0,
0, 0xffffff, 16, "
カーソル左右、キーボードA
、マウス左ボタンのキー入力");
int key;
key = KeyIn(
KI_NORMAL );
if ( key &
KEYIN_LEFT )
{
DrawString( 0,
16, 0xffffff, 16, "
カーソル左を押しました");
}
if ( key &
KEYIN_RIGHT )
{
DrawString( 0,
32, 0xffffff, 16, "
カーソル左を押しました");
}
key = KeyIn(
KI_KB );
if ( key &
KBIN_A )
{
DrawString( 0,
48, 0xffffff, 16, "
キーボードA
を押しました");
}
key = KeyIn(
KI_MOUSE );
if ( key &
MBIN_LEFT )
{
DrawString( 0,
64, 0xffffff, 16, "
マウス左ボタンを押しました");
}
Flip();
}
EndLibrary();
return 0;
}