📄 form1.vb
字号:
Me.Controls.Add(Me.red)
Me.Controls.Add(Me.blue)
Me.Controls.Add(Me.yellow)
Me.Controls.Add(Me.zhuangche5)
Me.Controls.Add(Me.zhuangche4)
Me.Controls.Add(Me.zhuangche3)
Me.Controls.Add(Me.zhuangche2)
Me.Controls.Add(Me.zhuangche1)
Me.Controls.Add(Me.left_zhuangche)
Me.Controls.Add(Me.right_zhuangche)
Me.Controls.Add(Me.me_car)
Me.Controls.Add(Me.Label88)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.zhuche)
Me.Controls.Add(Me.car1)
Me.Controls.Add(Me.car0)
Me.Controls.Add(Me.car3)
Me.Controls.Add(Me.car2)
Me.Controls.Add(Me.destination)
Me.Controls.Add(Me.start)
Me.Controls.Add(Me.PictureBox6)
Me.Controls.Add(Me.PictureBox5)
Me.Controls.Add(Me.PictureBox4)
Me.Controls.Add(Me.PictureBox3)
Me.Controls.Add(Me.PictureBox2)
Me.Controls.Add(Me.PictureBox1)
Me.Controls.Add(Me.PictureBox016)
Me.Controls.Add(Me.PictureBox106)
Me.Controls.Add(Me.PictureBox015)
Me.Controls.Add(Me.PictureBox014)
Me.Controls.Add(Me.PictureBox013)
Me.Controls.Add(Me.PictureBox012)
Me.Controls.Add(Me.PictureBox011)
Me.Controls.Add(Me.PictureBox101)
Me.Controls.Add(Me.PictureBox105)
Me.Controls.Add(Me.PictureBox104)
Me.Controls.Add(Me.PictureBox103)
Me.Controls.Add(Me.PictureBox102)
Me.Controls.Add(Me.zhongxian6)
Me.Controls.Add(Me.right_side)
Me.Controls.Add(Me.left_side)
Me.Controls.Add(Me.zhong)
Me.Controls.Add(Me.track)
Me.MaximizeBox = False
Me.MaximumSize = New System.Drawing.Size(304, 272)
Me.MinimumSize = New System.Drawing.Size(304, 272)
Me.Name = "Form1"
Me.RightToLeft = System.Windows.Forms.RightToLeft.No
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Dim Left_boundary(5), Right_boundary(5), Zhongxian(5) As PictureBox
Dim car(8) As PictureBox '右撞车时按右键调整;左撞车时按左键调整;开始一段路程只能按加速键
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i%
car(0) = car0
car(1) = car1
car(2) = car2
car(3) = car3
car(4) = car4
car(5) = car5
car(6) = car6
car(7) = car7
Left_boundary(0) = PictureBox101
Left_boundary(1) = PictureBox102
Left_boundary(2) = PictureBox103
Left_boundary(3) = PictureBox104
Left_boundary(4) = PictureBox105
Left_boundary(5) = PictureBox106
Right_boundary(0) = PictureBox011
Right_boundary(1) = PictureBox012
Right_boundary(2) = PictureBox013
Right_boundary(3) = PictureBox014
Right_boundary(4) = PictureBox015
Right_boundary(5) = PictureBox016
Zhongxian(0) = PictureBox1
Zhongxian(1) = PictureBox2
Zhongxian(2) = PictureBox3
Zhongxian(3) = PictureBox4
Zhongxian(4) = PictureBox5
Zhongxian(5) = PictureBox6
For i = 0 To 5
Left_boundary(i).Image = left_side.Image
Right_boundary(i).Image = right_side.Image
Zhongxian(i).Image = zhong.Image
Zhongxian(i).Visible = False
Next
start.Left = (right_side.Left - (left_side.Left + left_side.Width)) / 2 - start.Width / 2 + left_side.Width
destination.Left = (right_side.Left - (left_side.Left + left_side.Width)) / 2 - destination.Width / 2 + left_side.Width
destination.Visible = False
Label2.Visible = False
Label4.Text = "开始"
Label4.Top = 152
Label4.Left = 96
biaozhi.Top = 0
biaozhi.Left = 0
End Sub '开始整个窗体布局
Private Sub control_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles control.Tick
Begin.Enabled = False '首先停止begin过程避免与control过程冲突
zhuche.Visible = True '防止主车(玩家控制的车)再闪烁后,主车不在屏幕上显示
If l = 1 Then zhuche.Left -= 3 '左移动
If r = 1 Then zhuche.Left += 3 '右移动
Dim number0 As Int16
If sp = 1 And destination.Visible = False Then
up_speed(3, car) '调用加速
Else
down_speed(3, car) '调用减速
End If
Dim number2 As Int16
For number2 = 1 To 7
If car(number2).Top + car(number2).Height <= track.Top And car(number2).Top >= track.Top - 2 * car(number2).Height And car(number2).Left <> 300 And sp = 0 Then
u_outside(car(number2), number2, yellow)
End If
Next '调用其它车冲出上屏幕后的处理
If (car(0).Top >= track.Top + track.Height) Or (car(0).Top <= track.Top - 14 * car(0).Height) Then d_outside(car(0), 0) : score += 10 : Label10.Text = CStr(score)
Dim number1 As Int16
For number1 = 1 To 3
If car(number1).Top >= track.Top + track.Height Then
d_outside(car(number1), number1)
score += 10
Label10.Text = CStr(score)
End If
Next '调用其它车冲出下屏幕后的处理
Dim number3 As Int16
For number3 = 0 To 3
If car(number3).Top + car(number3).Height + 12 >= zhuche.Top Then
crash(car(number3), zhuche)
k = number3
End If
Next '主车和其它车撞车后处理
If (car(2).Image Is blue.Image) And (car(2).Top >= zhuche.Top - 100 And car(2).Top <= zhuche.Top - 90) Then
avoid(car(2))
End If '调用让路车的执行
If ((car(1).Image Is red.Image) And (car(1).Top >= zhuche.Top - 50 And car(1).Top <= zhuche.Top - 20)) Then
follow(car(1))
End If
If zhuche.Left <= 72 Then
control.Interval = 500
check.Enabled = False
L_baozha()
sp = 0
End If '左爆炸效果处理
If zhuche.Left >= 146 Then
control.Interval = 500
check.Enabled = False
R_baozha()
End If '右爆炸效果处理
Dim number5 As Int16
For number5 = 0 To 3
If car(number5).Left <= 73 Or (car(number5).Left >= 143 And car(number5).Left < 150) Then
brust(car(number5), baozha1, baozha3, yellow, follow_avoid)
End If
Next '其它车爆炸效果
Dim number4 As Int16
For number4 = 0 To 5
If start.Top >= 29153 + number4 * 48 Then Zhongxian(number4).Visible = False '让斑马线随start标记依次消失
Next
If start.Top >= 5000 Then
Dim m As Short
right_side.Image = PictureBox8.Image
For m = 0 To 5 Step 2
Right_boundary(m).Image = right_side.Image
Next
End If '换绿化带
If start.Top >= 29700 Then
Dim n As Short
right_side.Image = PictureBox9.Image
For n = 0 To 5
Right_boundary(n).Image = right_side.Image
Next
End If '换绿化带
If start.Top >= 30000 Then
destination.Visible = True
If sp = 1 Then
destination.Top += 5
End If
End If '终点标志出现
If destination.Top >= 184 Then
destination.Top = 184
If (car(2).Top <= track.Top - car(2).Height Or car(3).Top <= track.Top - car(3).Height) And _
(car(1).Top <= track.Top - car(1).Height) And (car(0).Top <= track.Top - car(0).Height) Then
Begin.Enabled = True
Exit Sub
End If
End If '终点出现后的处理
End Sub
Private Sub background_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles background.Tick
Dim i% = 0
If Left_boundary(0).Top <= 240 Then
Left_boundary(0).Top += 10
Else
Left_boundary(0).Top = Left_boundary(5).Top - Left_boundary(5).Height + 10
End If
If Right_boundary(0).Top <= 240 Then
Right_boundary(0).Top += 10
Else
Right_boundary(0).Top = Right_boundary(5).Top - Right_boundary(5).Height + 10
End If
If Zhongxian(0).Top <= 240 Then
Zhongxian(0).Top += 10
Else
Zhongxian(0).Top = Zhongxian(5).Top - (Zhongxian(5).Height + 28) + 10
End If
For i = 1 To 5
If Left_boundary(i).Top <= 240 Then
Left_boundary(i).Top += 10
Else
Left_boundary(i).Top = Left_boundary(i - 1).Top - Left_boundary(i - 1).Height
End If
If Right_boundary(i).Top <= 240 Then
Right_boundary(i).Top += 10
Else
Right_boundary(i).Top = Right_boundary(i - 1).Top - Right_boundary(i - 1).Height
End If
If Zhongxian(i).Top <= 240 Then
Zhongxian(i).Top += 10
Else
Zhongxian(i).Top = Zhongxian(i - 1).Top - (Zhongxian(i - 1).Height + 28)
End If
Next '背景运动
start.Top += 10
If destination.Visible = False Then
Label12.Text = CStr(30000 - start.Top)
End If '显示距离终点的路程
If start.Top >= 1000 And start.Top <= 1050 Then
control.Enabled = True
End If '开始让主车加速其他车不出现
Dim number0 As Int16
If sp = 1 And destination.Visible = False Then
If start.Top >= 5 And start.Top < 1500 Then Zhongxian(5).Visible = True
For number0 = 0 To 4
If start.Top >= 48 + 48 * number0 And start.Top < 1500 Then
Zhongxian(number0).Visible = True
End If
Next
End If '让斑马线随start标记依次出现
End Sub
Private Sub Begin_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Begin.Tick
biaozhi.Left += 10
Label4.Left += 10
Static time As Int16
Dim i As Int16
If biaozhi.Left > Me.Left + 300 Then '开机动画
If destination.Top < 184 Then
time += 1
If time < 16 Then
Begin.Interval = 500
flash(zhuche) '主车闪烁
Else
Begin.Interval = 50
For i = 0 To 7
car(i).Top -= 15 '其它车冲出屏幕
Next
If car(1).Top <= -200 Then
For i = 0 To 3
car(i).Image = yellow.Image '换其它车的颜色
Next
meter.Enabled = True '调用记时控件
Exit Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -