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

📄 csession.cls

📁 3D纵版射击程序
💻 CLS
📖 第 1 页 / 共 2 页
字号:
        fMessage.Hide
        fMessage.lblMessage = "DirectX could not be initialized. Zooom requires Microsoft DirectX 7.x to be installed on your system. You can download the latest DirectX drivers under www.microsoft.com/directx."
        fMessage.Show 1
        Unload fZooom
        End

End Sub

Public Sub Execute()

    Dim L_nNextFrameTime As Long
    Dim L_nNextSecondTime As Long
    Dim L_nFrameCount As Long
    Dim L_nCurrentTime As Long
    
    fZooom.Refresh

    Do
        If (Mode = 1) And Not (GetForegroundWindow = fZooom.hwnd) Then
            Mode = 5
            I_oMenu.DspOpen = True
            I_oMenu.VidOpen = True
            If SoundPresent Then Sounds.Add DSInstance.DuplicateSoundBuffer(Frames.Item("IDISPLAY").Sound)
        End If
        
        FrameCount = FrameCount + 1
        
        L_nNextFrameTime = timeGetTime + 10
        
        L_nFrameCount = L_nFrameCount + 1
        If timeGetTime > L_nNextSecondTime Then
            FramesPerSecond = L_nFrameCount
            L_nNextSecondTime = timeGetTime + 1000
            L_nFrameCount = 0
        End If
            
        fZooom.picLamp(0).Visible = (FrameCount Mod 100 > 50)
        fZooom.picLamp(1).Visible = (FrameCount Mod 100 <= 50)
        
        If Mode = 1 Then
            If I_oLevel Is Nothing Then
                Set I_oLevel = New cLevel
                Set I_oLevel.Parent = Me
                I_oLevel.Initialize Campaign.LevelName(Campaign.CurrentLevel)
            Else
                If I_oLevel.Position = I_oLevel.LevelLength Then Mode = 2
            End If
        End If
        
        If Mode = 2 Then
            
            If Campaign.CurrentLevel = Campaign.LevelCount Then
                I_oPlayer.Stars = I_oPlayer.Stars + 1
                Campaign.CurrentLevel = 1
                Mode = 4
                I_oMenu.DspItem = 0
                I_oMenu.DspOpen = True
                I_oMenu.VidOpen = True
            Else
                Campaign.CurrentLevel = Campaign.CurrentLevel + 1
                Mode = 3
                I_oMenu.DspItem = 0
                I_oMenu.DspOpen = True
                I_oMenu.VidOpen = True
            End If
            
        End If
        
        If FrameCount Mod 20 = 0 Then UpdateTime = timeGetTime
        If Not I_oLevel Is Nothing Then
            If Mode = 1 Then I_oLevel.Update
        End If
        I_oMenu.Update
        If SoundPresent Then I_oSounds.Update
        If FrameCount Mod 20 = 0 Then UpdateTime = timeGetTime - UpdateTime
        
        If FrameCount Mod 20 = 0 Then RenderTime = timeGetTime
        I_oViewport.Render
        If FrameCount Mod 20 = 0 Then RenderTime = timeGetTime - RenderTime
        
        If FrameCount Mod 20 = 0 Then ProcessTime = timeGetTime
        Process
        If FrameCount Mod 20 = 0 Then ProcessTime = timeGetTime - ProcessTime
        
        If FrameCount Mod 10 = 0 Then DoEvents
        
        Do
        Loop Until timeGetTime >= L_nNextFrameTime
        
    Loop Until Terminating

End Sub

Public Sub Terminate()

    Set I_oDSInstance = Nothing
    
    I_oViewport.Terminate
    Set I_oViewport = Nothing
    
    If Not (I_oLevel Is Nothing) Then I_oLevel.Terminate
    Set I_oLevel = Nothing
    
    If Not (I_oMenu Is Nothing) Then I_oMenu.Terminate
    Set I_oMenu = Nothing
    
    Set I_oEnemyTemplates = Nothing
    Set I_oFrames = Nothing
    Set I_oSounds = Nothing
    
    Set I_oDSInstance = Nothing
    Set I_oDDInstance = Nothing
    Set I_oDXInstance = Nothing
    
    Call SaveSettings
    
End Sub

Public Sub Process()

    If Not (GetForegroundWindow = fZooom.hwnd) Then Exit Sub
    
    Static L_nKeyDelay As Long
    
    Dim L_bKeyL As Boolean
    Dim L_bKeyU As Boolean
    Dim L_bKeyD As Boolean
    Dim L_bKeyR As Boolean
    Dim L_bKeyS As Boolean
    Dim L_bKeyE As Boolean
    Dim L_bKeyC As Boolean
    
    Dim L_dJoy As JOYINFOEX
    
    L_dJoy.dwSize = Len(L_dJoy)
    L_dJoy.dwFlags = 131

    L_bKeyS = (GetAsyncKeyState(&H20) = -32767 - IIf(Mode = 1, 1, 0))
    L_bKeyE = (GetAsyncKeyState(&H1B) = -32767 - IIf(Mode = 1, 1, 0))
    L_bKeyU = (GetAsyncKeyState(&H26) = -32767 - IIf(Mode = 1, 1, 0))
    L_bKeyD = (GetAsyncKeyState(&H28) = -32767 - IIf(Mode = 1, 1, 0))
    L_bKeyL = (GetAsyncKeyState(&H25) = -32767 - IIf(Mode = 1, 1, 0))
    L_bKeyR = (GetAsyncKeyState(&H27) = -32767 - IIf(Mode = 1, 1, 0))
    L_bKeyC = (GetAsyncKeyState(&H11) = -32768)
    
    If Joystick Then
        If joyGetPosEx(0, L_dJoy) = 0 Then
            L_bKeyS = L_bKeyS Or (L_dJoy.dwButtonNumber = 1)
            L_bKeyL = L_bKeyL Or (L_dJoy.dwXpos < 32767& - 300& * IIf(Mode = 1, 0, JoystickDead))
            L_bKeyR = L_bKeyR Or (L_dJoy.dwXpos > 32767& + 300& * IIf(Mode = 1, 0, JoystickDead))
            L_bKeyU = L_bKeyU Or (L_dJoy.dwYpos < 32767& - 300& * IIf(Mode = 1, 0, JoystickDead))
            L_bKeyD = L_bKeyD Or (L_dJoy.dwYpos > 32767& + 300& * IIf(Mode = 1, 0, JoystickDead))
        End If
    End If
    
    If L_nKeyDelay > 0 Then L_nKeyDelay = L_nKeyDelay - 1
    
    If L_nKeyDelay = 0 Then
    
        If Mode = 1 Then
        
            If Not I_oLevel Is Nothing Then
                If Player.Active Then
                
                    If L_bKeyC Then
                        If (GetAsyncKeyState(&H31) = -32767) Then Player.SetEquipment IIf(Player.Weapon < 4, Player.Weapon + 1, Player.Weapon)
                        If (GetAsyncKeyState(&H32) = -32767) Then Player.SetEquipment , IIf(Player.Mounts < 4, Player.Mounts + 1, Player.Mounts)
                        If (GetAsyncKeyState(&H33) = -32767) Then Player.SetEquipment , , IIf(Player.Orbiter < 4, Player.Orbiter + 1, Player.Orbiter)
                        If (GetAsyncKeyState(&H34) = -32767) Then Player.Hitpoints = Player.MaxHitpoints
                        If (GetAsyncKeyState(&H35) = -32767) Then Player.Shield = Player.MaxHitpoints
                        If (GetAsyncKeyState(&H36) = -32767) Then Player.Lifes = IIf(Player.Lifes < 9, Player.Lifes + 1, Player.Lifes)
                        If (GetAsyncKeyState(&H37) = -32767) Then Player.Hitpoints = -1
                        If (GetAsyncKeyState(&H38) = -32767) Then I_oLevel.Position = I_oLevel.LevelLength - 1
                        If (GetAsyncKeyState(&H39) = -32767) Then DebugMode = Not DebugMode
                        If (GetAsyncKeyState(&H30) = -32767) Then I_oLevel.Position = IIf(I_oLevel.Position < I_oLevel.LevelLength - 500, I_oLevel.Position + 500, I_oLevel.Position)
                        
                        L_nKeyDelay = 10
                    End If
                    
                    If L_bKeyL Then
                        Player.DeltaX = Player.DeltaX - 1
                        If Player.DeltaX < -10 Then Player.DeltaX = -10
                        L_nKeyDelay = 0
                    End If
                    
                    If L_bKeyR Then
                        Player.DeltaX = Player.DeltaX + 1
                        If Player.DeltaX > 10 Then Player.DeltaX = 10
                        L_nKeyDelay = 0
                    End If
                    
                    If L_bKeyU Then
                        Player.DeltaY = Player.DeltaY - 1
                        If Player.DeltaY < -10 Then Player.DeltaY = -10
                        L_nKeyDelay = 0
                    End If
                    
                    If L_bKeyD Then
                        Player.DeltaY = Player.DeltaY + 1
                        If Player.DeltaY > 10 Then Player.DeltaY = 10
                        L_nKeyDelay = 0
                    End If
                    
                    If L_bKeyS Then
                        Player.Shoot
                        L_nKeyDelay = 0
                    End If
                
                    If L_bKeyE Then
                        Mode = 5
                        I_oMenu.DspOpen = True
                        I_oMenu.VidOpen = True
                        If SoundPresent Then Sounds.Add DSInstance.DuplicateSoundBuffer(Frames.Item("IDISPLAY").Sound)
                        L_nKeyDelay = 0
                    End If
                
                End If
            End If
                
        Else
        
            If L_bKeyL Then
                I_oMenu.Execute 1
                L_nKeyDelay = 10
            End If
            
            If L_bKeyR Then
                I_oMenu.Execute 2
                L_nKeyDelay = 10
            End If
            
            If L_bKeyU Then
                I_oMenu.Execute 3
                L_nKeyDelay = 10
            End If
            
            If L_bKeyD Then
                I_oMenu.Execute 4
                L_nKeyDelay = 10
            End If
            
            If L_bKeyS Then
                I_oMenu.Execute 0
                L_nKeyDelay = 10
            End If
        
            If L_bKeyE Then
                I_oMenu.Execute 5
                L_nKeyDelay = 10
            End If
            
        End If
        
    End If
    
End Sub

Private Function HardwareCheck() As Boolean

    HardwareCheck = True
    If GetDeviceCaps(fZooom.hdc, 8) < 800 Then HardwareCheck = False
    If GetDeviceCaps(fZooom.hdc, 10) < 600 Then HardwareCheck = False
    If GetDeviceCaps(fZooom.hdc, 24) > -1 Then HardwareCheck = False

End Function

Private Sub LoadSettings()

    If Dir(App.Path + "\zooom.cfg") <> "" Then
        Open App.Path + "\zooom.cfg" For Input As #8
        Input #8, Detail, Difficulty, Joystick, JoystickDead, I_nMusicVolume, I_nWaveVolume
        Close #8
    End If
        
End Sub

Private Sub SaveSettings()

    Open App.Path + "\zooom.cfg" For Output As #8
    Write #8, Me.Detail, Me.Difficulty, Me.Joystick, Me.JoystickDead, Me.MusicVolume, Me.WaveVolume
    Close #8
    
End Sub

⌨️ 快捷键说明

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