Валерий Алексеевич Жарков

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 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” выбираем