Vba 当我释放一个键并快速按下另一个键时,imple游戏会延迟
我想用visual basic制作一个经典的砖块游戏。当我对一个击中球的矩形的运动进行编码时,我遇到了一个问题。释放键时,矩形会滞后。当我按下A时,松开它,同时按下D,纠结线会挂起一会儿,然后向右移动。Vba 当我释放一个键并快速按下另一个键时,imple游戏会延迟,vba,keydown,keyup,Vba,Keydown,Keyup,我想用visual basic制作一个经典的砖块游戏。当我对一个击中球的矩形的运动进行编码时,我遇到了一个问题。释放键时,矩形会滞后。当我按下A时,松开它,同时按下D,纠结线会挂起一会儿,然后向右移动。 这是我节目的一部分 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If rectangleLeft = True And Re
这是我节目的一部分
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If rectangleLeft = True And RectangleShape1.Left >= Me.ClientRectangle.Left + 2 Then
RectangleShape1.Left -= 2
End If
If rectangleRight = True And RectangleShape1.Right <= Me.ClientRectangle.Right - 2 Then
RectangleShape1.Left += 2
End If
End Sub
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.A Then
rectangleRight = False
rectangleLeft = True
End If
If e.KeyCode = Keys.D Then
rectangleLeft = False
rectangleRight = True
End If
End Sub
Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
rectangleLeft = False
rectangleRight = False
End Sub
Private Sub Timer1\u Tick(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理Timer1.Tick
如果rectangleLeft=True且RectangleShape1.Left>=Me.ClientRectangle.Left+2,则
矩形1.左-=2
如果结束
如果rectangleRight=True且RectangleShape1.Right延迟是由BIOS/Windows功能的重复延迟引起的;通过控制面板进行控制。您需要做的是使用定时器检查所需钥匙位置的状态,并在钥匙处于按下位置时处理移动
在计时器循环中使用此win32 API方法:
将函数GetKeyPress Lib“user32”别名“GetAsyncKeyState”(ByVal键为整数)声明为整数
Dim i As Integer = GetKeyPress(Keys.A)
未按下时i为0,按下时i为-32768