[Visual Basic 6.0] 利用 MouseDown 事件 寫簡易的射擊小遊戲

摘要:[Visual Basic 6.0] 利用 MouseDown 事件 寫簡易的射擊小遊戲

[Visual Basic 6.0] 利用 MouseDown 事件 寫簡易的射擊小遊戲

 

遊戲說明:

 

當按下遊戲開始後,玩家有 20 秒的時間可以射擊,表單上會隨機出現標靶,且每次只有一槍的機會!打中中心 10 分 打中次心給 9 分 打中最邊則給 8 分,沒打中則不給分不倒扣。

 

 

Dim CircleX, CircleY
Private Sub Command1_Click()
    Command1.Enabled = False ' 禁止重複按
    Label1.Caption = 20 ' 時間
    Label2.Caption = 0 ' 分數
    Timer1.Enabled = True ' 啟動倒數計時
    Timer2.Enabled = True ' 啟動標靶
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' 數學公式:(H-X)^2 + (K-Y)^2 <= R^2 等於點的位置在 半徑R 範圍裡面
    If ((CircleX - X) ^ 2 + (CircleY - Y) ^ 2) <= 300 ^ 2 Then Label2 = Label2 + 8 ' 在範圍 300 內 + 8 分
    If ((CircleX - X) ^ 2 + (CircleY - Y) ^ 2) <= 200 ^ 2 Then Label2 = Label2 + 1 ' 又在範圍 200 內 多加一分 = 9分
    If ((CircleX - X) ^ 2 + (CircleY - Y) ^ 2) <= 100 ^ 2 Then Label2 = Label2 + 1 ' 又在範圍 100 內 多加一分 = 10分
    Cls ' 只給一次打中或沒打中的機會
End Sub

Private Sub Timer1_Timer()
    Label1.Caption = Val(Label1) - 1
    If Label1.Caption = 0 Then
        Cls
        CircleX = -9999999 ' 防止遊戲結束後點位置會加分
        CircleY = -9999999 ' 防止遊戲結束後點位置會加分
        MsgBox "時間到!", , "遊戲結束"
        Timer1.Enabled = False ' 關閉倒數計時
        Timer2.Enabled = False ' 關閉標靶
        Command1.Enabled = True ' 重新開始遊戲
    End If
End Sub

Private Sub Timer2_Timer()
Cls ' 清空畫面
Me.Scale (0, 5000)-(5000, 0)
CircleX = 300 + Int(Rnd * 3001)
CircleY = 500 + Int(Rnd * 3001)

Circle (CircleX, CircleY), 100
Circle (CircleX, CircleY), 200
Circle (CircleX, CircleY), 300

End Sub

 

射擊遊戲.rar

#0xDe 從分享中學習

#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有問題歡迎提問