トップページ > 記事閲覧
3入力時のGetHitKeyStateAll関数
名前:chain 日時: 2014/12/12 08:15

題目の通り、自分の環境ではキーボードを3つ押している際に、一部のGetHitKeyStateAll関数が正常に反応してくれません。 自分の場合は、下と右(or左)と同時にアルファベット入力をした場合、この現象が生じました。 何か優先順位などがあってスキップされるのでしょうか。よろしければ教えていただけると幸いです。 以下の例では、下と右とAを入力してもうまくいかず、下の押下状態を解除した場合に一瞬表示されます。何か使い方が間違っていましたら、そちらもお教え願えれば幸いです。 void input::input_KeyUpdate(){ char keyState[256]; GetHitKeyStateAll( keyState ); //全てのキーの入力状態を取得 for( int i=0; i<256; i++){ if(keyState[i] != 0){ keyFlame[i]++; //押されているキーの押されているフレーム数をカウントアップ }else{ keyFlame[i] = 0; } if(keyFlame[KEY_INPUT_DOWN]>0&&keyFlame[KEY_INPUT_RIGHT]>0&&keyFlame[KEY_INPUT_A]>0){ DrawString(0, 0, "OK!", GetColor(255, 255, 255)); } } }
メンテ

Page: 1 |

Re: 3入力時のGetHitKeyStateAll関数 ( No.1 )
名前:Will 日時:2014/12/12 11:02

よく出る質問なのですが、一般的なキーボードは複数の同時押しにハード的な制限があります。 特に3キー以上の同時押しは可能なところ、そうでないところがあります。 これはソフトで回避するのが不可能ですので、ゲーマー用の特殊なキーボードを使用するしかありません。 参照 http://dailynewsagency.com/2014/03/08/microsoft-applied-sciences-group-bbw/
メンテ
Re: 3入力時のGetHitKeyStateAll関数 ( No.2 )
名前:chain 日時:2014/12/13 23:12

レスありがとうございます。 確かに異なるPCのキーボードを用いたところ、動きました。 キーボードがない場合にデバッグするなら、斜め下用のキーを別に設定するしかないかもしれませんね。 ダッシュボタンとかは3ボタン併用するので。 ありがとうございました。
メンテ
Re: 3入力時のGetHitKeyStateAll関数 ( No.3 )
名前:chain 日時:2014/12/13 23:28

参照先を見る前にお礼コメントしてしまった。。。 自分の環境では、Shiftやctrlなどなら矢印キー2つと同時使用ができそうです。 ありがとうございます。おかげでキーを増やさず何とかなりそうです。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存