4

Microsoft Visual Studio C# でゲームをプログラミングしていますが、多くのキーを同時にキャッチする必要があります。Q、W、E、R、T、Yを同時に検出することはできませんが、Q、W、E、R、T、Aを検出できます。

KeyDown を使用しようとしまし[DllImport("user32.dll")]たが、どちらも同じ結果になります。Y キーと A キーの違いは何ですか? また、この問題を解決するにはどうすればよいですか?

int code1 = GetVirtualKeyCode(Keys.Q);
int code2 = GetVirtualKeyCode(Keys.W);
int code3 = GetVirtualKeyCode(Keys.E);
int code4 = GetVirtualKeyCode(Keys.R);
int code5 = GetVirtualKeyCode(Keys.T);
int code6 = GetVirtualKeyCode(Keys.Y);
if ((array[code1] & 0x80) != 0 &&
    (array[code2] & 0x80) != 0 &&
    (array[code3] & 0x80) != 0 &&
    (array[code4] & 0x80) != 0 &&
    (array[code5] & 0x80) != 0 &&
    (array[code6] & 0x80) != 0)
{
    listBox1.Items.Add("asdasdasd");
}
4

2 に答える 2

3

これは、キーのロールオーバーとして知られています。USB キーボードは限られたキー ロールオーバーしかサポートしていませんが、巧妙に設計された一部の PS/2 キーボードには n キー ロールオーバーがあります (追加のキー押下をミュートすることなく、多数のキーを同時に押すことができます)。

読んでください:ウィキペディアの説明

于 2013-05-21T15:39:05.383 に答える