呵呵,其实我已经摸索到你的球板移动代码结构了:
Private Sub Form_KeyDown (...)
If KeyDown = Asc("A") Then
Ball.Left = Ball.Left - Speed
ElseIf KeyDown = Asc("D") Then
Ball.Left
= Ball.Left + Speed
End If
End Sub
大约是这样的,对吗?
你可以这样来修正延迟BUG:
定义一个全局变量 direction, 然后把 KeyDown 代码改成:
If KeyDown = Asc("A") Then
direction = "L"
ElseIf KeyDown = Asc("D") Then
direction = "R"
End If
然后定义 KeyUp 事件的代码:
direction = "'
最后在窗体上放一个 Timer 控件,把它的 Interval 设为 500 (关键的属性!它控制着球板的速度),定义 Timer 事件代码:
If direction ="L" Then
Ball.Left = Ball.Left - Speed
ElseIf direction = "R" Then
Ball.Left
= Ball.Left + Speed
End If
这样就解决延迟BUG了!
还有另一个更为直接的办法: 在控制面板的键盘设置中,设置延迟时间为 0 即可。