music.bas
来自「超级C&C有没有搞错,VB还能编出这种即时策略游戏来!没错,这就是我们的超级C&」· BAS 代码 · 共 65 行
BAS
65 行
Attribute VB_Name = "Music"
Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Public Const MaxMusicFiles = 100
Public MusicOn As Boolean
Const NOMUSICFILE = ""
Private Type musfiles
Filename As String
TrackTitle As String
End Type
Private Type Mus
MusicFiles(MaxMusicFiles) As musfiles
MaxMusicFiles As Integer
CurrentFile As String
End Type
Public MusicData As Mus
Private Const MMCONTROLMODE_STOPPED = 525
Public Sub InitializeMusic()
Call LoadMusicData
End Sub
Public Sub LoadMusicData()
Call FileFunctions.OpenGameFile(File_MusicDefinitions, 1)
Do
Line Input #1, a$
If a$ = FILETAG_ENDFILE Then Exit Do
If a$ = "[MUSICDEF]" Then
musicfilenum = musicfilenum + 1
Line Input #1, a$
propvalue$ = MiscFunctions.GetPropertyValue(a$)
MusicData.MusicFiles(musicfilenum).TrackTitle = propvalue$
Line Input #1, a$
propvalue$ = MiscFunctions.GetPropertyValue(a$)
MusicData.MusicFiles(musicfilenum).Filename = Directory_Music & propvalue$
End If
Loop
Close #1
MusicData.MaxMusicFiles = musicfilenum
End Sub
Public Sub PlayMusicFile(Filename$)
nothin = mciExecute("Play " & App.Path & "\" & Filename$)
Music.MusicData.CurrentFile = Filename$
End Sub
Public Sub StopMusic()
If MusicData.CurrentFile <> NOMUSICFILE Then nothin = mciExecute("Stop " & App.Path & "\" & Music.MusicData.CurrentFile)
MusicData.CurrentFile = NOMUSICFILE
End Sub
Public Sub KeepMusicPlaying()
If MusicData.CurrentFile <> NOMUSICFILE Then nothin = mciExecute("Play " & App.Path & "\" & MusicData.CurrentFile)
End Sub
Public Sub PlayTrackByIndex(TrackNum)
If Music.MusicOn = True Then Call PlayMusicFile(MusicData.MusicFiles(TrackNum).Filename)
End Sub
Public Sub PlayTrackByName(TrackName$)
If Music.MusicOn = True Then
For I = 1 To MusicData.MaxMusicFiles
If MusicData.MusicFiles(I).TrackTitle = TrackName$ Then
Call PlayMusicFile(MusicData.MusicFiles(I).Filename)
Exit For
End If
Next I
End If
End Sub
Public Sub CloseMusicDevice()
If MusicData.CurrentFile <> NOMUSICFILE Then nothin = mciExecute("Stop " & Music.MusicData.CurrentFile)
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?