在vb中的一个窗体中(有两个picturebox),我想要实现点击右方向键和Z键分别使得picture1和picture2移动
我是想做类似于一个赛跑的一个小游戏,一个人点击Z键(控制picture1),一个人点击右方向键(picture2),改变它们的left属性,使得两个picturebox向...
我是想做类似于一个赛跑的一个小游戏,一个人点击Z键(控制picture1),一个人点击右方向键(picture2),改变它们的left属性,使得两个picturebox向右移动,谁先到达终点谁就获胜
展开
展开全部
'新建一个窗体name为form1,上面放置2个图片框控件(分别用来放置图像1和图像2)和命令按钮控件(用来重置图1.图2的起跑位置)
Dim pic%
Private Sub Form_Load()
Form1.KeyPreview = True '窗体加载时,设置窗体接受按键弹起事件
pic = Picture1.Left '图像1和2的位置统一为图一的位置并另存到变量pic里面(供命令按钮重置用)
Picture2.Left = pic
End Sub
Private Sub Command1_Click()
Form1.KeyPreview = True '命令按钮,重置起跑位置为pic的值
Picture1.Left = pic
Picture2.Left = pic
End Sub
Private Sub Form_Keyup(Keycode As Integer, shift As Integer) '定义keyup按键弹起响应事件,防止keydown的长按作弊
If Keycode = 90 Then ' 假如按下z健
Picture1.Left = Picture1.Left + 100 '图像1移动
If Picture1.Left >= 5000 Then '假如图像1先通过终点线(这里设为5000),提示胜利
MsgBox "picture1胜", 0, "提示"
Form1.KeyPreview = False '设置窗体不再接受按键弹起事件
End If
ElseIf Keycode = 39 Then ' 假如按下→健
Picture2.Left = Picture2.Left + 100 ''图像2移动
If Picture2.Left >= 5000 Then '假如图像2先通过终点线(这里设为5000),就提示胜利
MsgBox "picture2胜", 0, "提示"
Form1.KeyPreview = False '设置窗体不再接受按键弹起事件
End If
End If
End Sub
Dim pic%
Private Sub Form_Load()
Form1.KeyPreview = True '窗体加载时,设置窗体接受按键弹起事件
pic = Picture1.Left '图像1和2的位置统一为图一的位置并另存到变量pic里面(供命令按钮重置用)
Picture2.Left = pic
End Sub
Private Sub Command1_Click()
Form1.KeyPreview = True '命令按钮,重置起跑位置为pic的值
Picture1.Left = pic
Picture2.Left = pic
End Sub
Private Sub Form_Keyup(Keycode As Integer, shift As Integer) '定义keyup按键弹起响应事件,防止keydown的长按作弊
If Keycode = 90 Then ' 假如按下z健
Picture1.Left = Picture1.Left + 100 '图像1移动
If Picture1.Left >= 5000 Then '假如图像1先通过终点线(这里设为5000),提示胜利
MsgBox "picture1胜", 0, "提示"
Form1.KeyPreview = False '设置窗体不再接受按键弹起事件
End If
ElseIf Keycode = 39 Then ' 假如按下→健
Picture2.Left = Picture2.Left + 100 ''图像2移动
If Picture2.Left >= 5000 Then '假如图像2先通过终点线(这里设为5000),就提示胜利
MsgBox "picture2胜", 0, "提示"
Form1.KeyPreview = False '设置窗体不再接受按键弹起事件
End If
End If
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询