vb做的类似打鼹鼠的游戏,简单,十分推荐初学vb 想做游戏的人学习

 
vb做的类似打鼹鼠的游戏,简单,十分推荐初学vb 想做游戏的人学习
2007年01月16日 01:26

类似打鼹鼠的游戏 ,每段时间 随机更新 小球 ,能记录打中和打错的个数

添加 一个form1 窗体上添加 一个picture控件 一个timer

全部代码:

'***********************************************

Dim OneX&, OneY             '每块的长宽
Dim ys(4, 4) As Boolean     '5*5的数组 记录是否有鼹鼠
Dim suc&, fail&             '点对和点错的个数
Private Sub Form_Load()
    Me.Show
    OneX = Picture1.Width / 5
    OneY = Picture1.Height / 5
    InitLine
    RefreshCaption
    Timer1_Timer
End Sub
Sub InitLine()
    Dim i&
    For i = 1 To 4
        Picture1.Line (OneX * i, 0)-(OneX * i, Picture1.Height)
    Next
    For i = 1 To 4
        Picture1.Line (0, OneY * i)-(Picture1.Width, OneY * i)
    Next
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim dx&, dy&
    dx = Fix(X / OneX)
    dy = Fix(Y / OneY)
    If dx > 4 Or dy > 4 Then Exit Sub
    
    If ys(dx, dy) Then
        suc = suc + 1
        ys(dx, dy) = False
    Else
        fail = fail + 1
    End If
    RefreshCaption
    RefreshPic
End Sub

Private Sub RefreshCaption()
    Me.Caption = "打中 " & suc & "个 打错 " & fail & "个"
End Sub

Private Sub RefreshPic()
    Dim i&, j&
    For j = 0 To 4
        For i = 0 To 4
            If ys(i, j) Then
                Picture1.Circle (i * OneX + OneX / 2, j * OneY + OneY / 2), IIf(OneX > OneY, OneY / 2 - 2, OneX / 2 - 2)
            Else
                Picture1.Line (OneX * i + 1, OneY * j + 1)-(OneX * (i + 1) - 1, OneY * (j + 1) - 1), vbWhite, BF
            End If
        Next
    Next
    InitLine
End Sub

Private Sub Timer1_Timer()
    Randomize
    Dim RndNum&, i&, j&
    For j = 0 To 4
        For i = 0 To 4
            If Int(Rnd * 15) <= 2 Then
                ys(i, j) = True
            End If
        Next
    Next
    RefreshPic
End Sub

'***********************************************

最终效果如下:

因百度无法提供上传 请+QQ:627083940 或+QQ群:5773874 大家共同学习
vb一个简单的射击游戏 Option Explicit Dim RandX As Single Dim RandY As Single Dim Score As Single Dim Thisscore As Single Dim Average As Single Dim Shot As Integer Dim Appear As Boolean Dim Distance As Single Private Sub Command1_Click() Timer1.Enabled = True Command3.Enabled = True If Command1.Enabled = True Then Command3.Caption = "暂停" End If Command4.Enabled = True End Sub Private Sub Command2_Click() If Command4.Enabled = True Then MsgBox "请先结束游戏", 48, "警告" Else End End If End Sub Private Sub Command3_Click() Command1.Enabled = False Command3.Caption = "继续" Timer1.Enabled = Not Timer1.Enabled If Timer1.Enabled = True Then Command3.Caption = "暂停" End If End Sub Private Sub Command4_Click() Timer1.Enabled = False Command3.Enabled = False Command1.Enabled = True Picture1.Cls Label1.Caption = "射击:" Label2.Caption = "平均得分:" Label3.Caption = "环数:" Label4.Caption = "总分:" Command4.Enabled = False Command3.Caption = "暂停" End Sub Private Sub Form_Load() Appear = False Timer1.Enabled = False Thisscore = 0 Score = 0 Shot = 0 End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Beep Shot = Shot + 1 Picture1.DrawWidth = 4 Picture1.PSet (X, Y), RGB(255, 0, 0) Distance = Sqr((X - RandX) * (X - RandX) + (Y - RandY) * (Y - RandY)) If Appear And Timer1.Enabled Then Thisscore = 5 - Int(Distance / 10) If Thisscore <= 0 Then Thisscore = 0 End If Score = Score + Thisscore Average = Int((Score / Shot) * 100) / 100 Label1.Caption = "射击:" + Str(Shot) + "发" Label2.Caption = "平均得分:" & Format(Average, "0.00") & "环" Label3.Caption = "环数:" + Str(Thisscore) + "环" Label4.Caption = "总分:" + Str(Score) + "环" End If End Sub Private Sub Timer1_Timer() Dim i As Integer Appear = Appear Xor True RandX = 500 * Rnd() RandY = 370 * Rnd() If Appear Then Form1.Picture1.AutoRedraw = True Picture1.DrawWidth = 1 Picture1.DrawStyle = 0 For i = 10 To 50 Step 10 Picture1.Circle (RandX, RandY), i, RGB(0, 0, 255) Next i Picture1.Line (RandX - 60, RandY)-(RandX + 60, RandY) Picture1.Line (RandX, RandY - 60)-(RandX, RandY + 60) Else Picture1.Cls End If End Sub
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值