キー入力キーボード、マウス、ジョイスティックの状態を調べるには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;
}