[Visual Basic 6.0] TQC 企业人才技能认证 Visual Basic 程序设计 – 405 红绿灯

摘要:[Visual Basic 6.0] TQC 企业人才技能认证 Visual Basic 程序设计 - 405 红绿灯


[Visual Basic 6.0] TQC 企业人才技能认证 Visual Basic 程序设计 - 405 红绿灯

Dim 目前的灯号, 目前的时间
Private Sub cmdEnd_Click()
End ' 结束
End Sub

Private Sub Form_Load()
Timer1.Interval = "1" ' 车子的速度
目前的灯号 = 0 ' 初始值先设为 绿灯
目前的时间 = 0 ' 一开始先设为 0 秒
End Sub

Private Sub Timer1_Timer()
'-----------------判断是否为红灯,是否可行走的部分-----------------
If picCars.Left >= 5400 Then picCars.Left = 480
' 当车子开过车道时 ( Left >= 5400 ),重新回到车道 ( Left = 480 )
If picCars.Left >= 2400 And picCars.Left <= 2760 Then '
' 当车子开到 Left 距离在 2400 ~ 2760 ( 题目规定 ) 时需要判断红绿灯
    If imgLight.Picture <> imgState(2).Picture Then ' 表示非红灯时
        picCars.Left = picCars.Left + 300 ' ( 300 可以随便改 指的是跑一次的距离 )
        ' 因为 imgLight.Picture = imgState(2).Picture 表示目前为 红灯
    End If
Else
        picCars.Left = picCars.Left + 300 ' ( 300 可以随便改 指的是跑一次的距离 )
        ' 不需要理会红绿灯
End If
'-----------------判断是否为红灯,是否可行走的部分-----------------

'-----------------更改灯号、判断是否更改灯号的部分-----------------
If 目前的时间 > hslInterval(目前的灯号).Value Then
' 假如目前的时间 大于 目前灯号所需等待的时间 即换灯号
    目前的灯号 = 目前的灯号 + 1 ' 换灯号
    If 目前的灯号 > 2 Then 目前的灯号 = 0 ' 因为只有三个灯号分别为 0 1 2 所当 > 2 时就回到 0
    imgLight.Picture = imgState(目前的灯号).Picture ' 更号灯号
    目前的时间 = 0 ' 更改完灯号后必须把时间归零
End If
目前的时间 = 目前的时间 + 1 ' 慢慢调到适合的 时间拉到最大时每个灯号约停留 3 ~ 5 秒
'-----------------更改灯号、判断是否更改灯号的部分-----------------
End Sub

#0xDe 从分享中学习

#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有问题欢迎提问