: : I was wondering what the code is to detect a keypress. I need it to start practicing making games using VB6.
: Interesting question.
: I think I can help you on this one.
: The first, easy, but not so good-resulted method is to use the events of your Visual Basic project form:
: Private Sub Form_KeyPress(KeyAscii As Integer)
: If KeyAscii = vbKeyUp Then MovePlayerUp
: If KeyAscii = vbKeyDown Then MovePlayerDown
: If KeyAscii = vbKeyLeft Then MovePlayerLeft
: If KeyAscii = vbKeyRight Then MovePlayerRight
: End Sub
: And if you want to detect when the user RELEASES the key:
: Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
: 'Code Here
: End Sub
: The bad thing on using this method is that you cannot detect two keys
: pressed at a time.
: Now...the really good method, the second method.
: Put this in a module to define the key pressing function of the WinAPI:
: Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
: And then, when you want to detect if a key is pressed:
: If GetAsyncKeyState(vbKeyUp) < 0 Then MovePlayerUp
: If GetAsyncKeyState(vbKeyDown) < 0 Then MovePlayerDown
: If GetAsyncKeyState(vbKeyLeft) < 0 Then MovePlayerLeft
: If GetAsyncKeyState(vbKeyRight) < 0 Then MovePlayerRight
: Good Luck!
: Mihail Dimitrov
: ICQ : 110064098
KeyDown, not KeyPress. And you can use KeyDown for multiple keys. In fact, you can do so easier and more reliably than with GetAsyncKeyState because the API needs a loop or timer.