Hi,

I'm fairly new to VB6 and I have started to create a Bird Hunt game (Bird flies up - you shoot it).

I have implemented a scoring system which adds your score and name to a txt file, as well as the birds movment and click events.

I would like some constructive criticism on my coding (Bear in mind it is pretty basic atm - New to the scene).

It is run on Word using two Userforms.

Userform1:

Code:
Sub go_Click()
    x = 0
    Start = 0
        
    If (MsgBox("Are you ready?", 4)) = vbYes Then
        PauseTime2 = 2    ' Set duration.
        Start2 = Timer    ' Set start time.
        Do While Timer < Start2 + PauseTime
            DoEvents    ' Yield to other processes.
        Loop
        Finish = Timer    ' Set end time.
        TotalTime = Finish - Start2    ' Calculate total time.
        UserForm1.Flight ' Run Flight Sub
    End If
End Sub
Sub Result()
    If x > 0 And check = False Then  ' If the score is greater than 0
        bird.Visible = False ' Hide the Bird
        j = (x + (i * 10) - (4 * i) + Int(bird.Top / i)) ' Calculate the score
        k = k + j
        response = MsgBox("Good Shot!  You scored " & j & " points. Do you want to play again?", vbYesNo)
        If response = vbNo Then
            MsgBox ("Thanks for playing, you scored " & k & " points.")
            user = InputBox("Please Enter your name")
            Call UserForm2.FillVars(k, user)
            UserForm1.Hide
            UserForm2.Show
        ElseIf response = vbYes Then
            bird.Move random, 438 ' Reset the bird
            shot = False
            UserForm1.Flight
        End If
    ElseIf check = True Then ' If the bird reached the top and you didn't score
        MsgBox ("It got away!")
        bird.Move random, 438 ' Reset the bird
        shot = False
        lives = lives + 1
        If lives = 1 Then
            lifelbl = "1st try."
        ElseIf lives = 2 Then
            lifelbl = "2nd try."
        ElseIf lives = 3 Then
            lifelbl = "Last try!"
        End If
        MsgBox ("Lives Lost: " & lives)
        If lives > 3 Then
            MsgBox ("You ran out of lives!")
            user = InputBox("Please Enter your name")
            Call UserForm2.FillVars(k, user)
            UserForm1.Hide
            UserForm2.Show
        End If
    End If
End Sub
Sub bird_Click()
        x = x + 1 ' Add one to the score
        shot = True
End Sub

Sub Flight()
    check = False
    bird.Enabled = True
    shot = False
    random = Int((500 * Rnd) + 1)
    If Int(TotalTime) = 2 Then
        PauseTime = 10    ' Duration
        Start = Timer
        
        bird.Visible = True
        If easy.Value = True Then
            Do While Timer < Start + PauseTime
                If shot = False Then
                    bird.Top = bird.Top - (10 / 50) ' Move the bird up by the speed / 50

                    UserForm1.Repaint ' Repaint the form
                    DoEvents
                    If bird.Top < 1 Then ' If the bird is < 1 pixel from the top
                        check = True ' Switch check to true
                        UserForm1.Result
                        Exit Do ' Exit the loop
                    End If
                Else
                    i = 10
                    UserForm1.Result
                    Exit Do
                End If
            Loop
        
        ElseIf medium.Value = True Then
            Do While Timer < Start + PauseTime
                If shot = False Then
                    bird.Top = bird.Top - (20 / 50) ' Move the bird up by the speed / 50
        
                    UserForm1.Repaint ' Repaint the form
                    DoEvents
                    If bird.Top < 1 Then ' If the bird is < 1 pixel from the top
                        check = True ' Switch check to true
                        UserForm1.Result
                    Exit Do ' Exit the loop
                    End If
                Else
                    i = 20
                    UserForm1.Result
                    Exit Do
                End If
            Loop
        
        ElseIf hard.Value = True Then
            Do While Timer < Start + PauseTime
                If shot = False Then
                    bird.Top = bird.Top - (30 / 50) ' Move the bird up by the speed / 50
        
                    UserForm1.Repaint ' Repaint the form
                    DoEvents
                    If bird.Top < 1 Then ' If the bird is < 1 pixel from the top
                        check = True ' Switch check to true
                        UserForm1.Result
                    Exit Do ' Exit the loop
                    End If
                Else
                    i = 30
                    UserForm1.Result
                    Exit Do
                End If
            Loop
        End If
    End If
End Sub
Userform2:

Code:
Dim k As Integer
Dim names As String
Dim UserName As String
Dim user As String


Sub ok_Click()
    ok.Enabled = False
    Open "h:\users.txt" For Append As #1
    Print #1, user; Tab(2); k
    Close #1
    
    Open "h:\users.txt" For Input As #1
    names = Input(LOF(1), #1)
    Close #1
    scorelbl.Caption = (names)
End Sub

Sub FillVars(ByRef k1 As Integer, user1 As String)
    k = k1
    user = user1
End Sub

Sub UserForm_Initialize()
    Open "h:\users.txt" For Input As #1
    names = Input(LOF(1), #1)
    Close #1
    scorelbl.Caption = (names)
End Sub
Thanks for your input,

Loader