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

📄 mzoom.bas

📁 3D纵版射击程序
💻 BAS
字号:
Attribute VB_Name = "mZoom"
Public Const PIFACTOR = 0.01745329

Public Type tParsingResults
    sCommand As String
    sArgument() As String
End Type

Public Type JOYINFOEX
        dwSize As Long
        dwFlags As Long
        dwXpos As Long
        dwYpos As Long
        dwZpos As Long
        dwRpos As Long
        dwUpos As Long
        dwVpos As Long
        dwButtons As Long
        dwButtonNumber As Long
        dwPOV As Long
        dwReserved1 As Long
        dwReserved2 As Long
End Type

Public Type BITMAP
        bmType As Long
        bmWidth As Long
        bmHeight As Long
        bmWidthBytes As Long
        bmPlanes As Integer
        bmBitsPixel As Integer
        bmBits As Long
End Type

Public Type POINTAPI
    X As Long
    Y As Long
End Type
    
Public Declare Sub FillMemory Lib "kernel32" Alias "RtlFillMemory" (ByVal pDest As Long, ByVal numBytes As Long, ByVal fillbyte As Byte)
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Public Declare Function timeGetTime Lib "winmm.dll" () As Long
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Declare Function IntersectRect Lib "user32" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Public Declare Function midiOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long
Public Declare Function midiOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
Public Declare Function mciGetDeviceID Lib "winmm.dll" Alias "mciGetDeviceIDA" (ByVal lpstrName As String) As Long
Public Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Public Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Long, pji As JOYINFOEX) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Public Declare Function GetForegroundWindow Lib "user32" () As Long

Public G_nTranslucencyLookup(255, 100) As Byte

Public Function GetWaveFileFormat(ByVal sFileName As String) As WAVEFORMATEX
        
    Dim L_dWFX As WAVEFORMATEX
    Dim L_nPosition As Long
    Dim L_nWaveBytes() As Byte
    
    sFileName = App.Path + "\" + sFileName
    ReDim L_nWaveBytes(1 To FileLen(sFileName))
    Open sFileName For Binary As #1
    Get #1, , L_nWaveBytes
    Close #1
    L_nPosition = 1
    Do While Not (Chr(L_nWaveBytes(L_nPosition)) + Chr(L_nWaveBytes(L_nPosition + 1)) + Chr(L_nWaveBytes(L_nPosition + 2)) = "fmt")
        L_nPosition = L_nPosition + 1
    Loop
    CopyMemory VarPtr(L_dWFX), VarPtr(L_nWaveBytes(L_nPosition + 8)), Len(L_dWFX)
    
End Function

Public Function Parse(sLine As String) As tParsingResults

    Dim L_sComponent() As String
    Dim L_nPos As Integer
    ReDim L_sComponent(0)
    
    sLine = Trim(UCase(sLine))
    
    Do
        L_nPos = 0
        If L_nPos = 0 Then L_nPos = InStr(1, sLine, " ")
        If L_nPos = 0 Then L_nPos = InStr(1, sLine, vbTab)
        
        If L_nPos = 0 Then
        
            L_sComponent(UBound(L_sComponent)) = sLine
            Exit Do
            
        Else
        
            If L_nPos > 1 Then
            
                L_sComponent(UBound(L_sComponent)) = Left(sLine, L_nPos - 1)
                ReDim Preserve L_sComponent(UBound(L_sComponent) + 1)
                
            End If
            
            sLine = Mid(sLine, L_nPos + 1)
        
        End If
        
    Loop
    
    Parse.sCommand = L_sComponent(0)
    If UBound(L_sComponent) > 0 Then
        ReDim Parse.sArgument(UBound(L_sComponent) - 1)
        For L_nPos = 1 To UBound(L_sComponent)
            Parse.sArgument(L_nPos - 1) = L_sComponent(L_nPos)
        Next
    End If
    
End Function

⌨️ 快捷键说明

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