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){・・・}
とやるしかないんでしょうか?
もっと簡単な方法があったら教えてもらえないでしょうか?
入力状態取得について
-
GPGA
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])) {
// いづれかのキーが押された処理
} としては、いかがでしょうか?