VB做一个键盘控制小球移动的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 10:43:38
用VB做一个小球移动的问题,代码是:
Sub Form_KeyDown(keycode As Integer, shift As Integer)
Select Case keycode
Case vbKeyUp: Shape1.Move Shape1.Left, Shape1.Top - 100
Case vbKeyDown: Shape1.Move Shape1.Left, Shape1.Top + 100
Case vbKeyLeft: Shape1.Move Shape1.Left - 100, Shape1.Top
Case vbKeyRight: Shape1.Move Shape1.Left + 100, Shape1.Top
Case vbKeyUp And vbKeyLeft: Shape1.Move Shape1.Left - 100, Shape1.Top - 100
Case vbKeyUp And vbKeyRight: Shape1.Move Shape1.Left + 100, Shape1.Top - 100
Case vbKeyDown And vbKeyLeft: Shape1.Move Shape1.Left - 100, Shape1.Top + 100
Case vbKeyDown And vbKeyRight: Shape1.Move Shape1.Left + 100, Shape1.Top + 100
End Select
End Sub
怎样才能限制小球移动的区域?
顺便还问下,这个程序控制小球斜着走必须两个方向键同时按下去才可以,怎样才能优化成不管同不同时按下两个键就可以斜着走呢?
可以具体一点吗? 不要用小键盘,能不能用光标键组合做到呢?

建议你用键盘右边的数字键盘控制(7,9,1,3分别代表左上,右上,左下,右下)代码如下:
Sub Form_KeyDown(keycode As Integer, shift As Integer)
Select Case keycode
Case vbKeyUp: Shape1.Move Shape1.Left, Shape1.Top - 100
Case vbKeyDown: Shape1.Move Shape1.Left, Shape1.Top + 100
Case vbKeyLeft: Shape1.Move Shape1.Left - 100, Shape1.Top
Case vbKeyRight: Shape1.Move Shape1.Left + 100, Shape1.Top
Case 103: Shape1.Move Shape1.Left - 100, Shape1.Top - 100
Case 105: Shape1.Move Shape1.Left + 100, Shape1.Top - 100
Case 97: Shape1.Move Shape1.Left - 100, Shape1.Top + 100
Case 99: Shape1.Move Shape1.Left + 100, Shape1.Top + 100
End Select

End Sub

定义一些全局变量保存区域的边界位置,运行Form_KeyDown时判断是否超越边界然后写对应代码。
斜着走可以在定义一个新键码