KeyCode文でキー判定をさせる時、一つボタンを押している時に他のボタンを押すと、先に押していたボタンが無視されてしまいます。
ちなみに、
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDown Then
Shape1.Top = Shape1.Top + 30
End If
End Sub
って感じです。
ゲームを作っているんですが、同時に反応してくれないと困ります。
どうか回答宜しくお願いします。
キーイベントで(修飾キーの組み合わせを除いて)一つしか送られてこないのは Windows の仕様です。
Win32API の GetKeyboardState 関数を使って全てのキーの状態を取得するか、あるいは KeyDown から KeyUp までキーごとの「押している」フラグを上げておくなどの工夫が必要です。
ただし、キーボードによっては同時に認識するキー数が 3 程度しか無い場合もあることに注意してください。これはプログラムからはどうにもできません。
複数同時押しの認識キー数の制限は、キーボードの物理的な構造による物です。
http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89
ツイート | ![]() |