0

私の質問は、新しいゲームをプレイするようになったときの子供の年齢に合わせて行動し、非常に感銘を受けました。

ゲームは、同時に押された 4,6 を超える、場合によっては 8 つのキーを認識して反応することができました。これはどのように可能ですか?これには限界がありますか?または、「a、s、d、f、u、v、shift、0、uparrow、rightcltr、return、backspace」をすべて押した場合、プログラムは「それを読み取る」ことができますか? それについてのいくつかの紹介(C、bashscript、javascript、またはphytonで)は高く評価されます。ここでの努力に感謝します。

4

2 に答える 2

2

キーを押したときに発生するイベントと、キーを離したときに発生する個別のイベントを追跡することで、複数の同時キー押下に確実に対応できます。たとえば、X11ではこれらのイベントはKeyPressおよびKeyReleaseであり、WebブラウザではKeyDownおよびKeyUpJavascriptイベントです。しかし、ほとんどのキーボードには、同時に電気的に検出できるキー押下の数に物理的な制限があることがわかると思います。したがって、例「a、s、d、f、u、v、shift、0、uparrow、rightcltr、リターンとバックスペース」はキーが多すぎる可能性があります。

于 2012-03-25T21:54:31.710 に答える
2

Windows について言えば、GetKeyboardState () は 256 個の仮想キーの状態を指定されたバッファーにコピーします。

BYTE keys[256];

if(GetKeyboardState(keys))
{

   //check if A key is pressed
   if((keys[VK_A]&0xF0) && !(prevKeys[VK_A]&0xF0)) 
   {
     DoAPressed();
   }
   //check if S key is pressed too
   if((keys[VK_S]&0xF0) && !(prevKeys[VK_S]&0xF0)) 
   {
     DoSPressed();
   }
   // the same goes for all keys you want to check
}
于 2012-03-25T22:15:20.093 に答える