キー入力

キーボード、マウス、ジョイスティックの状態を調べるにはKeyIn()を使います。

引数に調べたい機器を指定します。

引数を省略した場合はKI_NORMALになります。



KeyIn()引数に指定できる定数一覧

KI_NORMAL = 0, キーボード+ゲームコントローラー×

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;

}