Visual C++ 2008 Express Editionを使っています。
A~Zのいずれかのキーが入力されてる場合ってのをやりたいのですが、
(GetHitKeyStateAll_2(Key)を使っています)
if(Key[KEY_INPUT_A]==1||Key[KEY_INPUT_B]==1||…(略)…Key[KEY_INPUT_Z]==1){・・・}
とやるしかないんでしょうか?
もっと簡単な方法があったら教えてもらえないでしょうか?
入力状態取得について
Re:入力状態取得について
KEY_INPUT_A~KEY_INPUT_Zまでは連番で保障されていないので
リストを作成して、ループでまわしてやるのがわかりやすいと思います。
としては、いかがでしょうか?
リストを作成して、ループでまわしてやるのがわかりやすいと思います。
const int list[/url] = { KEY_INPUT_A, KEY_INPUT_B, KEY_INPUT_C, KEY_INPUT_D, KEY_INPUT_E, KEY_INPUT_F, KEY_INPUT_G, KEY_INPUT_H, KEY_INPUT_I, KEY_INPUT_J, KEY_INPUT_K, KEY_INPUT_L, KEY_INPUT_M, KEY_INPUT_N, KEY_INPUT_O, KEY_INPUT_P, KEY_INPUT_Q, KEY_INPUT_R, KEY_INPUT_S, KEY_INPUT_T, KEY_INPUT_U, KEY_INPUT_V, KEY_INPUT_W, KEY_INPUT_X, KEY_INPUT_Y, KEY_INPUT_Z, }; int i; for (i = 0; i < sizeof(list) / sizeof(list[0]); ++i) { if (Key[list] == 1) { break; } } if (i != sizeof(list) / sizeof(list[0])) { // いづれかのキーが押された処理 }
としては、いかがでしょうか?