摘要:[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
#0xDe 從分享中學習
#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有問題歡迎提問