Да так, чтобы при нажатии одновременно, например, клавиш влево и вниз, чтобы он двигался по диагонали.
Отпускаем клавишу - перестает двигаться.
Вот что я сделал:
- Код: Выделить всё
Option Explicit
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDown Then
tmr_down.Enabled = True
Call tmr_down_Timer
End If
If KeyCode = vbKeyUp Then
tmr_up.Enabled = True
Call tmr_up_Timer
End If
If KeyCode = vbKeyLeft Then
tmr_left.Enabled = True
Call tmr_left_Timer
End If
If KeyCode = vbKeyRight Then
tmr_right.Enabled = True
Call tmr_right_Timer
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDown Then tmr_down.Enabled = False
If KeyCode = vbKeyUp Then tmr_up.Enabled = False
If KeyCode = vbKeyLeft Then tmr_left.Enabled = False
If KeyCode = vbKeyRight Then tmr_right.Enabled = False
End Sub
Private Sub tmr_up_Timer()
Shape1.Top = Shape1.Top - 100
End Sub
Private Sub tmr_down_Timer()
Shape1.Top = Shape1.Top + 100
End Sub
Private Sub tmr_left_Timer()
Shape1.Left = Shape1.Left - 100
End Sub
Private Sub tmr_right_Timer()
Shape1.Left = Shape1.Left + 100
End Sub
Но тогда он движется неравномерно, т.е. сначала нормально, потом быстро.