Невозможно пройти тесты, в окне с вопросами пусто |
Озвучивание игр на платформе XNA
Рассмотрим код. Для работы с WAV-звуками мы применяем объекты типа SoundEffect. Обратите внимание на то, что по умолчанию WAV-файлы считаются звуковыми эффектами, при их добавлении в проект, рис. 15.2, их свойство Обработчик контента устанавливается в значение Звуковой эффект – XNA Framework.
Добавляя в проект MP3-файл, мы видим следующие свойства, рис. 15.3. Эти файлы считаются, по умолчанию, композициями, мы работаем с ними, используя объекты типа Song.
В процедуре Initialize мы загружаем необходимые ресурсы. Для воспроизведения композиций мы пользуемся статическим классом MediaPlayer. Это очень мощный инструмент, помимо воспроизведения отдельных композиций он может работать с плейлистами, обладает многими другими возможностями. В частности, мы устанавливаем его свойство IsRepeating в значение True – это обеспечит циклическое воспроизведение композиции, и, после загрузки ресурса gameMusic, передаем этот ресурс для воспроизведения.
В процедуре Update мы наблюдаем за действиями пользователя, и, ориентируясь на них, управляем воспроизведением.
Так, если пользователь выполняет жест двойного касания экрана, мы останавливаем воспроизведение (но только в том случае, если оно производится в данный момент, то есть, свойство State объекта MediaPlayer равно MediaState.Playing). При этом мы воспроизводим звуковой эффект 1, уменьшив до 30% его громкость по отношению к общей громкости.
При обнаружении жеста горизонтального перетаскивания мы приостанавливаем воспроизведение (ставим "на паузу"), делая это только в том случае, если воспроизведение производится в данный момент, и, кроме того, разрешаем воспроизведение звука при простом касании экрана. Если зафиксирован жест вертикального перетаскивания, мы, в том случае, если до этого воспроизведение было приостановлено, начинаем его с момента, когда была осуществлена приостановка, если же воспроизведение было остановлено – начинаем проигрывание композиции сначала.
В конце процедуры Update мы записываем в переменную message состояние объекта MediaPlayer для вывода этого состояния на экран, которое осуществляем в методе Update. На рис. 15.4 вы можете видеть игровой экран приложения в эмуляторе.
15.2. Выводы
В этой лабораторной работе была рассмотрена методика озвучивания игр с использованием фоновой музыки и звуков.
15.3. Задание
Выясните с помощью библиотеки MSDN, можно ли использовать для озвучивания игр звуковые файлы форматов, отличных от WAV и MP3. Если можно – узнайте – как это сделать.