Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта. Валерий Алексеевич Жарков
Читать онлайн книгу.добавляем и встраиваем в проект второй файл win.wav типа мажорной мелодии.
Аналогично можно добавить и встроить в проект ещё много звуковых файлов, которые мы желаем послушать во время выполнения приложения или игры.
Открываем файл Form1.vb (например, так: File, Open, File) и вверху записываем директиву для подключения требуемого пространства имен:
Imports System.Reflection 'Для класса Assembly.
Напомним, что эту строку можно и не записывать, но тогда нам придётся перед каждым классом записывать эти пространства имён System.Reflection.
Теперь в панели Properties (для формы Form1) на вкладке Events дважды щёлкаем по имени события Load (Загрузка).
Появляется файл Form1.vb с шаблоном метода Form1_Load, который после записи нашего кода принимает следующий вид.
Листинг 6.10. Метод для загрузки и воспроизведения звуковых файлов.
'Объявляем объекты класса Sound для каждого звукового файла:
Dim moveSound As Sound
Dim winSound As Sound
'Создаём объект myAssembly класса System.Reflection.Assembly
'и присваиваем ему ссылку на исполняемую сборку приложения:
Dim myAssembly As Assembly = Assembly.GetExecutingAssembly()
'Создаём объект myAssemblyName
'класса System.Reflection.AssemblyName и присваиваем ему
'имя сборки, которое состоит из имени проекта,
'Version, Culture, PublicKeyToken:
Dim myAssemblyName As AssemblyName = myAssembly.GetName()
'Из имени сборки при помощи свойства Name
'выделяем имя проекта myName_of_project типа String:
Dim myName_of_project As String = myAssemblyName.Name
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Загружаем звуковые файлы:
'Вариант 1:
'moveSound = _
' New Sound(myAssembly.GetManifestResourceStream( _
' myName_of_project + "." + "move.wav"))
winSound = _
New Sound(myAssembly.GetManifestResourceStream( _
myName_of_project + "." + "win.wav"))
'Загружаем звуковые файлы:
'Вариант 2:
'moveSound = New Sound(myName_of_project + "." + "move.wav")
'winSound = New Sound(myName_of_project + "." + "win.wav")
'Воспроизведение звукового файла:
'moveSound.Play()
'Воспроизведение звукового файла:
winSound.Play()
End Sub
В режиме выполнения (Build, Build Selection; Debug, Start Without Debugging) мы услышим соответствующее (одноразовое) воспроизведение звукового файла, который мы добавили непосредственно в проект (а не в дополнительную папку Sounds проекта).
Теперь строки типа:
moveSound.Play()
winSound.Play()
мы можем записывать в тех местах любой программы, где необходимо воспроизводить соответствующий звуковой файл.
Для циклического (Loop) непрерывного воспроизведения звукового файла вместо строки:
winSound.Play()
следует записать:
winSound.PlayLoop()
Далее можно экспериментировать, как описано выше в первой методике.
Важно отметить, если в игре применяются несколько звуковых файлов, то их целесообразно разместить в одной папке с именем, например, Sounds. Для добавления в проект этой папки, в панели Solution Explorer (рис. 6.7) выполняем правый щелчок по имени проекта, в контекстном меню выбираем Add, New Folder, в поле появившегося значка папки записываем имя папки и нажимаем клавишу Enter.
Добавляем в эту папку (например, из Интернета) первый звуковой файл по стандартной схеме, а именно: выполняем правый щелчок по имени этой папки, в контекстном меню выбираем Add, Existing Item, в панели Add Existing Item в окне “Files of type” выбираем