📄 form1.vb
字号:
End If
End If
Else
control.Enabled = False
background.Enabled = False
Begin.Interval = 50
zhuche.Top -= 10 '最后让主车前进
End If
If zhuche.Top < Me.Top - zhuche.Height Then '主车冲出屏幕
Label2.Text = "GOAL"
Label2.Visible = True
background.Enabled = False
meter.Enabled = False
control.Enabled = False
check.Enabled = False
follow_avoid.Enabled = False
Exit Sub
End If
End If
End Sub
Private Sub meter_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles meter.Tick '此事件对记时、记距离处理
Static time As Int16 = 100
meter.Interval = 1000
If time <> -1 Then
Label1.Text = CStr(time)
time -= 1
ElseIf destination.Visible = False Then
Begin.Enabled = False : control.Enabled = False : background.Enabled = False
check.Enabled = False
follow_avoid.Enabled = False
Label2.Visible = True
Label2.Text = "FAIL" '游戏失败的判断
Exit Sub
End If
If sp = 1 Then '按下或放开加速键后车辆的处理(缓慢加速和减速)
background.Enabled = True
Select Case space1
Case 1
background.Interval = 60 : space1 = 2 : control.Interval = 200
Case 2
background.Interval = 56 : space1 = 3 : control.Interval = 150
Case 3
background.Interval = 52 : space1 = 4 : control.Interval = 100
Case 4
background.Interval = 48 : space1 = 5 : control.Interval = 90
Case 5
background.Interval = 44 : space1 = 6 : control.Interval = 80
Case 6
background.Interval = 40 : space1 = 7 : control.Interval = 70
Case 7
background.Interval = 35 : space1 = 8 : control.Interval = 60
Case 8
background.Interval = 30 : space1 = 9 : control.Interval = 55
Case 9
background.Interval = 25 : control.Interval = 50
End Select
Else
Select Case space1
Case 9
background.Interval = 35 : space1 = 8
Case 8
background.Interval = 40 : space1 = 7
Case 7
background.Interval = 44 : space1 = 6
Case 6
background.Interval = 48 : space1 = 5
Case 5
background.Interval = 52 : space1 = 4
Case 4
background.Interval = 56 : space1 = 3
Case 3
background.Interval = 60 : space1 = 2
Case 2
space1 = 1 : background.Enabled = False : control.Interval = 200 '停止背景运动
End Select
up_speed(3, car)
End If
End Sub
Private Sub check_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles check.Tick '碰撞后处理
If Lt = 1 Then '用全局变量标志是哪方向撞车
If l = 0 Then
Select Case time0
Case 0 : check.Interval = 160 : zhuche.Image = left_zhuangche.Image : zhuche.Left -= 1 : time0 = 1
Case 1 : zhuche.Image = left_zhuangche.Image : time0 = 2
Case 2 : zhuche.Image = left_zhuangche.Image : time0 = 3
Case 3 : zhuche.Image = left_zhuangche.Image : time0 = 4
Case 4 : zhuche.Image = right_zhuangche.Image : time0 = 5
Case 5 : zhuche.Image = zhuangche5.Image : time0 = 6
Case 6 : zhuche.Image = zhuangche4.Image : time0 = 7
Case 7 : zhuche.Image = zhuangche3.Image : time0 = 8
Case 8 : zhuche.Image = zhuangche2.Image : time0 = 9
Case 9 : zhuche.Image = zhuangche1.Image : time0 = 3
End Select
zhuche.Left -= 5
If car(k).Left <= AL Then
car(k).Left += 3
End If
Else
zhuche.Image = me_car.Image
time0 = 0
check.Enabled = False
End If
End If
If Rt = 1 Then
If r = 0 Then
Select Case time0
Case 0 : check.Interval = 160 : zhuche.Image = right_zhuangche.Image : time0 = 1
Case 1 : zhuche.Image = right_zhuangche.Image : time0 = 2
Case 2 : zhuche.Image = right_zhuangche.Image : time0 = 3
Case 3 : zhuche.Image = right_zhuangche.Image : time0 = 4
Case 4 : zhuche.Image = left_zhuangche.Image : time0 = 5
Case 5 : zhuche.Image = zhuangche1.Image : time0 = 6
Case 6 : zhuche.Image = zhuangche2.Image : time0 = 7
Case 7 : zhuche.Image = zhuangche3.Image : time0 = 8
Case 8 : zhuche.Image = zhuangche4.Image : time0 = 9
Case 9 : zhuche.Image = zhuangche5.Image : time0 = 3
End Select
zhuche.Left += 5
If car(k).Left >= AR Then
car(k).Left -= 3
End If
Else
zhuche.Image = me_car.Image
time0 = 0
check.Enabled = False
End If
End If
End Sub
'按键处理
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Left Then l = 1
If e.KeyCode = Keys.Right Then r = 1
If e.KeyCode = Keys.Space Then sp = 1
End Sub
'按键处理
Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
If e.KeyCode = Keys.Left Then l = 0
If e.KeyCode = Keys.Right Then r = 0
If e.KeyCode = Keys.Space Then sp = 0
End Sub
'冲出下屏幕后的处理
Private Sub d_outside(ByVal sender As System.Object, ByVal i As Int16)
Dim Value, flag As Int32
Randomize()
Value = CInt(Int(10 * Rnd()))
flag = CInt(Int(4 * Rnd()))
Static MyValue% = 0
MyValue += Value
If i = 0 Then
car(0).Top = track.Top - 14 * car(0).Height
car(0).Image = yellow.Image
Select Case MyValue Mod 6
Case 0 : sender.Left = 75
If (start.Top >= 8000 And start.Top <= 12000) Or (start.Top > 13000 And start.Top < 14000) _
Or (start.Top > 6000 And 8000) And flag < 2 Then
car(2).Image = blue.Image
Lp = 0 : Rp = 0
Else
car(2).Image = yellow.Image
End If
car(2).Left = 101 : car(2).Top = sender.Top + 13 * car(2).Height : Lp = 0 : Rp = 0
car(1).Left = flag * 13 + 75 : car(1).Top = sender.Top + 5 * car(1).Height : car(1).Image = yellow.Image
Case 1 : sender.Left = 88
If (start.Top >= 8000 And start.Top <= 12000) Or (start.Top > 13000 And start.Top < 14000) _
Or (start.Top > 6000 And 8000) And flag < 2 Then
car(2).Image = blue.Image
Lp = 0 : Rp = 0
Else
car(2).Image = yellow.Image
End If
car(2).Top = sender.Top + 12 * car(2).Height : Lp = 0 : Rp = 0
car(1).Left = 75 + flag * 13 : car(1).Top = sender.Top + 4 * car(1).Height : car(1).Image = yellow.Image
Case 2 : sender.Left = 101
If (start.Top >= 8000 And start.Top <= 12000) Or (start.Top > 13000 And start.Top < 14000) _
Or (start.Top > 6000 And 8000) And flag < 2 Then
car(2).Image = blue.Image
Lp = 0 : Rp = 0
Else
car(2).Image = yellow.Image
End If
car(2).Left = 114 : car(2).Top = sender.Top + 11 * car(2).Height : Lp = 0 : Rp = 0
car(1).Left = 75 + flag * 13 : car(1).Top = sender.Top + 3 * car(1).Height : car(1).Image = yellow.Image
Case 3 : sender.Left = 114
If (start.Top >= 8000 And start.Top <= 12000) Or (start.Top > 13000 And start.Top < 14000) _
Or (start.Top > 21000 And start.Top < 22000) Or (start.Top > 17000 And 18000) And flag >= 2 Then
car(1).Image = red.Image
Lm = 0 : Rm = 0
End If
car(3).Left = 75 : car(3).Top = sender.Top + 8 * car(3).Height : car(3).Image = yellow.Image
car(1).Left = 88 + flag * 13 : car(1).Top = sender.Top + 3 * car(1).Height
Case 4 : sender.Left = 127
If (start.Top >= 8000 And start.Top <= 12000) Or (start.Top > 13000 And start.Top < 14000) _
Or (start.Top > 21000 And start.Top < 22000) Or (start.Top > 17000 And 18000) And flag >= 2 Then
car(1).Image = red.Image
Lm = 0 : Rm = 0
End If
car(3).Left = 88 : car(3).Top = sender.Top + 7 * car(3).Height : car(3).Image = yellow.Image
car(1).Left = 127 - flag * 13 : car(1).Top = sender.Top + 4 * car(1).Height
Case 5 : sender.Left = 140
If (start.Top >= 8000 And start.Top <= 12000) Or (start.Top > 13000 And start.Top < 14000) _
Or (start.Top > 21000 And start.Top < 22000) Or (start.Top > 17000 And 18000) And flag >= 2 Then
car(1).Image = red.Image
Lm = 0 : Rm = 0
End If
car(3).Left = 75 : car(3).Top = sender.Top + 9 * car(3).Height : car(3).Image = yellow.Image
car(1).Left = 140 - flag * 13 : car(1).Top = sender.Top + 5 * car(1).Height
End Select
Else
sender.top = -1000
sender.left = 300
End If
MyValue += 3
End Sub
'撞车后调用具体时间控件调用函数
Private Sub crash(ByVal sender1 As System.Object, ByVal sender2 As System.Object)
If sender1.top + sender1.height >= sender2.top And sender1.top + sender1.height <= sender2.top + sender2.height + sender1.height Then
If sender1.left > sender2.left And sender1.left < sender2.left + sender2.width Then
AL = sender1.left + sender1.width
Rt = 0
Lt = 1
check.Enabled = True
End If
If sender1.left <= sender2.left And sender1.left + sender1.width > sender2.left Then
AR = sender1.left - sender1.width
Lt = 0
Rt = 1
check.Enabled = True
End If
End If
End Sub
'让路车的具体时间控件调用函数
Private Sub avoid(ByVal sender As System.Object)
k = 2
If sender.left >= zhuche.Left And sender.left < zhuche.Left + zhuche.Width Then
ZR = sender.left + 2 * sender.width
Rp = 1
Lp = 0
follow_avoid.Enabled = True
End If
If sender.left < zhuche.Left And sender.left + sender.width >= zhuche.Left Then
ZL = sender.left - 2 * sender.width
Lp = 1
Rp = 0
follow_avoid.Enabled = True
End If
End Sub
'跟随车的处理
Private Sub follow(ByVal sender As System.Object)
k = 1
If sender.left <= 140 Then
If r = 1 Then
ZR = sender.left + sender.width * 2
Rm = 1
Lm = 0
follow_avoid.Enabled = True
End If
End If
If sender.left >= 80 Then
ZL = sender.left - sender.width * 2
If l = 1 Then
Lm = 1
Rm = 0
follow_avoid.Enabled = True
End If
End If
End Sub
'主车右边界爆炸效果处理
Private Sub R_baozha()
control.Interval = 500
background.Enabled = False
Static time% = 0
Select Case time
Case 0 : zhuche.Image = right_baozha1.Image : time = 1
Case 1 : zhuche.Image = right_baozha2.Image : time = 2
Case 2 : zhuche.Image = right_baozha3.Image : time = 3
Case 3 : zhuche.Image = recover.Image : time = 4
Case 4 : zhuche.Image = me_car.Image : zhuche.Left = 120 : control.Interval = 200 : time = 0 : space1 = 1
End Select
End Sub
'主车左边界爆炸效果处理
Private Sub L_baozha()
control.Interval = 500
background.Enabled = False
Select Case time
Case 0 : zhuche.Image = baozha1.Image : time = 1
Case 1 : zhuche.Image = baozha2.Im
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -