ページ 11

DXライブラリのキーの状態を確認する関数について

Posted: 2013年9月29日(日) 19:41
by well-known
int Key[256]; // キーが押されているフレーム数を格納する

// キーの入力状態を更新する
int gpUpdateKey(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey != 0 ){ // i番のキーコードに対応するキーが押されていたら
Key++; // 加算
} else { // 押されていなければ
Key = 0; // 0にする
}
}
return 0;
}

この中で、tmpkey[256]とありますが、具体的にtmpkey[1]やtmpkey[9]などに対応しているキーは何なんでしょうか?
サイトをみても理解液なかったので、だれか教えていただけないでしょうか?

Re: DXライブラリのキーの状態を確認する関数について

Posted: 2013年9月29日(日) 20:04
by softya(ソフト屋)
どの値がどのキーかは気にする必要がないです。
添字としてKEY_INPUT_???と言うのが定義済みなのでそれを使いますよ。
「DXライブラリ置き場 リファレンスページ」 KEY_INPUT_???の一覧。
http://homepage2.nifty.com/natupaji/DxL ... .html#R5N2

【補足】せっかくKEY_INPUT_???で抽象化しているので数値を直接使うのは分かりづらくなるので避けたほうが良いです。一般に数値を直接書くのは良くない組み方に分類されます。

Re: DXライブラリのキーの状態を確認する関数について

Posted: 2013年9月29日(日) 20:11
by みけCAT
DxLib.hとDxDirectX.hをみればわかります。
tmpkey[1]はtmpkey[KEY_INPUT_ESCAPE]なのでEscキー
tmpkey[9]はtmpkey[KEY_INPUT_8]なので8キー
のようです。(Ver 3.11)

Re: DXライブラリのキーの状態を確認する関数について

Posted: 2013年9月30日(月) 20:43
by well-known
どうもありがとうございましたm(__)m