⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 VB程序设计实例
💻 FRM
📖 第 1 页 / 共 3 页
字号:
                showfang 0
                situation = 7
            End If
        End If
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Case 11                                                              '这是正7字型方块
        If n(0) - 9 > 1 And (n(3) - 22) Mod 10 < 9 Then
            If cmdfang(n(0) - 9).Visible = False And _
               cmdfang(n(3) - 22).Visible = False Then
                hidefang 0
                n(0) = n(0) - 9
                n(2) = n(2) - 11
                n(3) = n(3) - 22
                showfang 0
                situation = 12
            End If
        End If
    Case 12
        If (n(0) + 11) Mod 10 > 0 And n(3) - 18 > 1 Then
            If cmdfang(n(0) + 11).Visible = False And _
               cmdfang(n(3) - 18).Visible = False Then
                hidefang 0
                n(0) = n(0) + 11
                n(2) = n(2) - 9
                n(3) = n(3) - 18
                showfang 0
                situation = 13
            End If
        End If
    Case 13
        If n(0) + 9 < 198 And (n(3) + 22) Mod 10 > 0 Then
            If cmdfang(n(0) + 9).Visible = False And _
               cmdfang(n(3) + 22).Visible = False Then
                hidefang 0
                n(0) = n(0) + 9
                n(2) = n(2) + 11
                n(3) = n(3) + 22
                showfang 0
                situation = 14
            End If
        End If
    Case 14
        If (n(0) - 11) Mod 10 < 9 And n(3) + 18 < 198 Then
            If cmdfang(n(0) - 11).Visible = False And _
               cmdfang(n(3) + 18).Visible = False Then
                hidefang 0
                n(0) = n(0) - 11
                n(2) = n(2) + 9
                n(3) = n(3) + 18
                showfang 0
                situation = 11
            End If
        End If
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Case 15                                                              '这是反7字型方块
        If (n(3) - 22) Mod 10 < 8 Then
            If cmdfang(n(2) - 11).Visible = False And _
               cmdfang(n(3) - 22).Visible = False Then
                hidefang 0
                n(0) = n(0) + 9
                n(2) = n(2) - 11
                n(3) = n(3) - 22
                showfang 0
                situation = 16
            End If
        End If
    Case 16
        If n(3) - 18 > 1 Then
            If cmdfang(n(2) - 9).Visible = False And _
               cmdfang(n(3) - 18).Visible = False Then
                hidefang 0
                n(0) = n(0) - 11
                n(2) = n(2) - 9
                n(3) = n(3) - 18
                showfang 0
                situation = 17
            End If
        End If
    Case 17
        If (n(3) + 22) Mod 10 > 1 Then
            If cmdfang(n(2) + 11).Visible = False And _
               cmdfang(n(3) + 22).Visible = False Then
                hidefang 0
                n(0) = n(0) - 9
                n(2) = n(2) + 11
                n(3) = n(3) + 22
                showfang 0
                situation = 18
            End If
        End If
    Case 18
        If n(3) + 18 < 198 Then
            If cmdfang(n(2) + 9).Visible = False And _
               cmdfang(n(3) + 18).Visible = False Then
                hidefang 0
                n(0) = n(0) + 11
                n(2) = n(2) + 9
                n(3) = n(3) + 18
                showfang 0
                situation = 15
            End If
        End If
    End Select
End Sub
  Private Sub about_Click()
  Dim Msg As String
  Msg = "键盘控制方法:" & vbCrLf
  Msg = Msg & "1.左右光标键控制方块左右移动。" & vbCrLf
  Msg = Msg & "2.上光标键控制方块顺时针旋转90度。" & vbCrLf
  Msg = Msg & "3.下光标键控制方块加速向下移动。" & vbCrLf & vbCrLf
  Msg = Msg & "程序设计者: 王志伟   李虎" & vbCrLf
  Msg = Msg & "    版权所有,请勿盗版  " & vbCrLf
  Msg = Msg & " E-Mail: lihu_2008@163.com"
  MsgBox Msg, vbOKOnly + vbQuestion, Me.Caption
End Sub
Private Sub fast_Click(Index As Integer)
    Dim k As Integer
    For k = 0 To 9
    fast(k).Checked = False
    Next k
    fast(Index).Checked = True
    txtlevel.Text = Index + 1
End Sub

Private Sub gao_Click(Index As Integer)
    Dim l As Integer
    For l = 0 To 9
    gao(l).Checked = False
    Next l
    gao(Index).Checked = True
    txthard.Text = Index + 1
End Sub

Private Sub start_Click()
        picmain.SetFocus
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        tmrmain.Interval = 1000 / Val(txtlevel.Text)                     '根据关卡系数设置方块下降速度
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        For i = 19 To 20 - Val(txthard.Text) Step -1                     '根据难度系数产生不同难度的地基
            For j = i * 10 To i * 10 + 9
                If Rnd >= 0.5 Then cmdfang(j).Visible = True
            Next
        Next
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        For i = 0 To 3                                                   '引用预览区已经产生的方块
            n(i) = m(i)
        Next
        showfang 0
        situation = situation2
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        tmrmain.Enabled = True                                           '设置一些控件的可用性
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        hidefang 1                                                       '清空预览区
        loadfangkuai                                                     '继续在预览区产生方块
        showfang 1
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        stop1.Enabled = True
End Sub
Private Sub exit_Click()
    StrMsg = "您是否继续玩游戏?"
     Ref = MsgBox(StrMsg, vbYesNo + vbQuestion, "游戏结束")
  If Ref = vbYes Then
     tmrmain.Enabled = True
  Else
     tmrmain.Enabled = False
     Unload Me
  End If
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If t = 0 Then
    hidefang 0
    Select Case KeyCode
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Case vbKeyLeft                                                       '点击向左键
        If leftable() = True Then
            For j = 0 To 3
                cmdfang(n(j) - 1).Visible = True
                n(j) = n(j) - 1
            Next j
        End If
        showfang 0
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Case vbKeyDown                                                       '点击向下键
        If downable() = True Then
            For j = 0 To 3
                cmdfang(n(j) + 10).Visible = True
                n(j) = n(j) + 10
            Next j
        End If
        showfang 0
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Case vbKeyRight                                                      '点击向右键
        If rightable() = True Then
            For j = 0 To 3
                cmdfang(n(j) + 1).Visible = True
                n(j) = n(j) + 1
            Next j
        End If
        showfang 0
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Case vbKeyUp                                                     '点击旋转键(向上键)
        showfang 0
        zhuan
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Case Else
        showfang 0
    End Select
    End If
End Sub
Private Sub Form_Load()
    Randomize                                                            '非正序的随机数
    For i = 1 To 199                                                     '创建游戏区的方块
        Load cmdfang(i)
    Next i
    For i = 0 To 199                                                     '在游戏区以10×20排列方块
        cmdfang(i).Left = (i Mod 10)
        cmdfang(i).Top = i \ 10
        cmdfang(i).Visible = False
    Next i
    For i = 1 To 39                                                      '创建预览区的方块
        Load cmdfangnext(i)
    Next i
    For i = 0 To 39                                                      '在预览区排列方块
        cmdfangnext(i).Left = (i Mod 10) - 3
        cmdfangnext(i).Top = i \ 10
        cmdfangnext(i).Visible = False
    Next i
    loadfangkuai                                                         '在预览区产生第一个方块
    showfang 1
End Sub
Private Sub Form_Unload(Cancel As Integer)
    IsMusicOn = False
    RetValue = mciSendString("CLOSE BackgroundMusic", "", 0, 0)
End Sub
Private Sub stop1_Click()
    tmrmain.Enabled = False
    go.Enabled = True
    stop1.Enabled = False
End Sub
Private Sub go_Click()
    tmrmain.Enabled = True
    go.Enabled = False
    stop1.Enabled = True
End Sub
Private Sub Timer4_Timer()
      Label2.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
End Sub

Private Sub tmrmain_Timer()                                              '使方块下降的Timer
    hidefang 0
    If downable() = True Then                                            '能够下降
        For j = 0 To 3
            n(j) = n(j) + 10
        Next j
        showfang 0
    Else                                                                 '不能继续下降了
        showfang 0
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        clearline                                                        '引用自定义方法,判断是否消除满行
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        For i = 0 To 9                                                   '如果方块叠至最上层,游戏结束
            If cmdfang(i).Visible = True Then Exit For
        Next
        If i < 10 Then
           StrMsg = "输了请不要灰心" & vbCrLf & "是否重新开始玩游戏?"
           Ref = MsgBox(StrMsg, vbYesNo + vbQuestion, "俄罗斯方块游戏")
              If Ref = vbYes Then
                 For i = 1 To 199
                 cmdfang(i).Visible = False
                 Next i
                 txtscore.Text = "0"
                 linenum = 0
                 For i = 19 To 20 - Val(txthard.Text) Step -1        '根据难度系数产生不同难度的地基
                     For j = i * 10 To i * 10 + 9
                     If Rnd >= 0.5 Then cmdfang(j).Visible = True
                     Next
                Next
             Else
               IsMusicOn = False
               RetValue = mciSendString("CLOSE BackgroundMusic", "", 0, 0)
               End
             End If
        End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        For i = 0 To 3                                                   '引用预览区已经产生的方块
            n(i) = m(i)
        Next
        showfang 0
        situation = situation2
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        txtscore.Text = Str(Val(txtscore.Text) + 100 * (2 ^ linenum - 1)) '这段代码控制加分
        
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                                                                         '这段代码控制过关升级
        If Val(Right(txtscore.Text, 4)) < Val(Right(Str(Val(txtscore.Text) - 100 * (2 ^ linenum - 1)), 4)) Then
            txtlevel.Text = Str(Val(txtlevel.Text) + 1)
            tmrmain.Interval = 1000 / Val(txtlevel.Text)
        End If
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        linenum = 0
        hidefang 1                                                       '清空预览区
        loadfangkuai                                                     '继续在预览区产生方块
        showfang 1
    End If
End Sub
Private Sub Timer1_Timer()
    For i = 0 To num
        yp(i) = yp(i) + sty(i)
        If yp(i) > ScaleHeight - 50 Then
            xp(i) = Rnd * (ScaleWidth - am(i) - 30)
            yp(i) = 0
            stx(i) = 0.02 + Rnd / 10
            sty(i) = 0.7 + Rnd
        End If
        dx(i) = dx(i) + stx(i)
        snow(i).Left = xp(i) + am(i) * Sin(dx(i))
        snow(i).Top = yp(i)
    Next i
End Sub
Private Sub yincang_Click()
    picnext.Visible = False
    yincang.Enabled = False
    xianshi.Enabled = True
End Sub
Private Sub xianshi_Click()
    picnext.Visible = True
    yincang.Enabled = True
    xianshi.Enabled = False
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -