Опубликован: 14.08.2012 | Доступ: свободный | Студентов: 880 / 20 | Оценка: 5.00 / 5.00 | Длительность: 09:59:00
Специальности: Программист
Самостоятельная работа 9:

Озвучивание игр на платформе XNA

Рассмотрим код. Для работы с WAV-звуками мы применяем объекты типа SoundEffect. Обратите внимание на то, что по умолчанию WAV-файлы считаются звуковыми эффектами, при их добавлении в проект, рис. 15.2, их свойство Обработчик контента устанавливается в значение Звуковой эффект – XNA Framework.

Свойства для WAV-файла, добавленного в проект

Рис. 15.2. Свойства для WAV-файла, добавленного в проект

Добавляя в проект MP3-файл, мы видим следующие свойства, рис. 15.3. Эти файлы считаются, по умолчанию, композициями, мы работаем с ними, используя объекты типа Song.

Свойства для MP3-файла, добавленного в проект

Рис. 15.3. Свойства для MP3-файла, добавленного в проект

В процедуре Initialize мы загружаем необходимые ресурсы. Для воспроизведения композиций мы пользуемся статическим классом MediaPlayer. Это очень мощный инструмент, помимо воспроизведения отдельных композиций он может работать с плейлистами, обладает многими другими возможностями. В частности, мы устанавливаем его свойство IsRepeating в значение True – это обеспечит циклическое воспроизведение композиции, и, после загрузки ресурса gameMusic, передаем этот ресурс для воспроизведения.

В процедуре Update мы наблюдаем за действиями пользователя, и, ориентируясь на них, управляем воспроизведением.

Так, если пользователь выполняет жест двойного касания экрана, мы останавливаем воспроизведение (но только в том случае, если оно производится в данный момент, то есть, свойство State объекта MediaPlayer равно MediaState.Playing). При этом мы воспроизводим звуковой эффект 1, уменьшив до 30% его громкость по отношению к общей громкости.

При обнаружении жеста горизонтального перетаскивания мы приостанавливаем воспроизведение (ставим "на паузу"), делая это только в том случае, если воспроизведение производится в данный момент, и, кроме того, разрешаем воспроизведение звука при простом касании экрана. Если зафиксирован жест вертикального перетаскивания, мы, в том случае, если до этого воспроизведение было приостановлено, начинаем его с момента, когда была осуществлена приостановка, если же воспроизведение было остановлено – начинаем проигрывание композиции сначала.

В конце процедуры Update мы записываем в переменную message состояние объекта MediaPlayer для вывода этого состояния на экран, которое осуществляем в методе Update. На рис. 15.4 вы можете видеть игровой экран приложения в эмуляторе.

Экран программы

Рис. 15.4. Экран программы

15.2. Выводы

В этой лабораторной работе была рассмотрена методика озвучивания игр с использованием фоновой музыки и звуков.

15.3. Задание

Выясните с помощью библиотеки MSDN, можно ли использовать для озвучивания игр звуковые файлы форматов, отличных от WAV и MP3. Если можно – узнайте – как это сделать.

Гулич Анна
Гулич Анна
Невозможно пройти тесты, в окне с вопросами пусто