Звуки и музыкаДавайте добавим в игру музыку и звуки. Для начала скачайте архив sounds.zip, в котором содержатся все музыкальные файлы для данной игры. Затем в Layout Editor (Редактор уровня) добавьте новый объект, который называется Xaudio2 — он появится в списке объектов сцены. Смотрите рис. 111. 
Рис. 111 — XAudio2.Прежде чем создавать события для звуков и музыки, нужно загрузить все аудиофайлы в игру. Для этого во вкладке Project (Проект), в списке ресурсов нажмите ПКМ на папке Files (Файлы) — появится команда Add file(s) (Добавить файл(ы)). Смотрите рис. 112. 
Рис. 112 — Add file(s) (Добавить файл(ы)).Кликните по ней, и откроется проводник, в котором вам нужно выделить все музыкальные файлы в заранее скачанной папке sounds. В ресурсах отобразится список загруженных файлов. Смотрите рис. 113. 
Рис. 113 — Список загруженных аудиофайлов.Переходим к созданию событий. Создайте новую группу и назовите ее Sounds and Music. Добавьте следующие событие: в списке объектов выберите спрайт basis, далее вкладкуPlatform и в ней команду Is jumping (Прыгает). Затем создайте под-событие: выберите объект System (Система), далее команду Trigger once while true (Выполнить один раз, если правда). Теперь создаем действие: выбираем объект Xaudio2, далее команду Autoplay resource (Автопроигрывание ресурса) — откроется окно, в котором под надписью Resource to load (Ресурс, который нужно загрузить) в активном списке выберите файл с названиемjump.wav и нажмите Finish. У вас должно получиться событие как на рис. 114. 
Рис. 114.Запустите игру и попробуйте попрыгать, нажимая клавишу Shift. Каждый раз при прыжке вы будете слышать звук. Теперь скопируйте это событие целиком и измените условие Is jumping (Прыгает) на Is on ground (На земле), а в действии кликнув 2 раза ЛКМ по строке jump.wavзамените его на звук ground.wav. Должно получиться событие как на рис. 115. 
Рис. 115.Мы добавили звук соприкосновения персонажа с платформой. Теперь добавим звук собирания монет: скопируйте событие еще раз и замените условие Is jumping (Прыгает) на On collision with another object (При столкновении с другим объектом), далее кликните на кнопке Pick an object (Указать объект) и выберите спрайт money. Теперь поменяйте в действии звукground.wav на звук money.wav. Должно получиться событие как на рис. 116. 
Рис. 116.Давайте создадим событие, чтобы озвучить уничтожение врага — выбираем спрайтenemy_croc, далее команду An animation is playing (Проигрывается анимация), в поле ввода текста вписываем имя анимации "destroyed". Создаем под-событие: в списке выберите объектSystem (Система), далее команду Trigger once while true (Выполнить один раз, если правда). Создаем действие: выбираем объект XAudio2, далее команду Autoplay resource (Автопроигрывание ресурса) и в окне выбора ресурса выбираем файл с названиемdestroy.wav, нажимаем Finish. Скопируйте это действие еще раз и измените destroy.wav на другой музыкальный файл с именем blow.wav. Таким образом, мы поставили 2 звуковых файла в одном событии, чтобы в момент, когда главный герой прыгнул на врага сверху, мы услышали звук удара и затем звук разрушения врага. У вас должно получиться событие как на рис. 117. 
Рис. 117.Скопируйте событие целиком и удалите одно действие — XAudio2: Autoplay resource ''destroy.wav'' (No loop), выделив его и нажав клавишу Delete на клавиатуре. Далее в условии замените имя анимации ''destroyed'' на ''moving''. Теперь не удаляя под-событиеTrigger once (Выполнить один раз, если правда), создайте новое под-событие: выберите спрайт basis, далее команду On collision with another object (При столкновении с другим объектом) и, кликнув по кнопке Pick an object (Указать объект), выберите спрайтenemy_croc. Созданное вами новое под-событие скорее всего окажется в самом низу, поэтому выделив его и зажав ЛКМ, переместите его между событиями enemy_croc: Animation ''moving'' is playing и Trigger once, чтобы в итоге у вас получилось так же, как на рис. 118. 
Рис. 118.Теперь, если вы подойдете к противнику сбоку, он оттолкнет вашего персонажа с соответствующим звуком. Давайте создадим событие для стрелки: выберите спрайт next, далее условие Object is on-screen? (Объект на экране?). Затем создаем под-событие: так же выбираем спрайт next, далее условие Is visible? (Видимый ли?). Добавим еще под-событие: выбираем спрайт nextеще раз, затем команду Compare animation frame (Сравнить кадр анимации) и в поле ввода текста ставим значение 1, жмем Finish. Далее создаем еще одно под-событие: в списке выбираем объект System (Система), далее команду Trigger once while true (Выполнить один раз, если правда). Напротив добавляем действие: выбираем объект XAudio2, далее командуAutoplay resource (Автопроигрывание ресурса) и в активной вкладке выбираем signal.wav, жмем Finish. В итоге у вас должно получиться событие как на рис. 119. 
Рис. 119.Запустите игру и проверьте — после того, как вы соберете все монеты и уничтожите врага, появится табличка, и вы услышите периодически повторяющийся сигнал, но если вы отдалитесь от таблички, и она окажется за экраном — то звук исчезнет! За это отвечает событие Object is on-screen? (Объект на экране?). Теперь создадим событие посложнее. Чтобы сделать озвучку для шагов главного героя, создаем новое событие: выбираем спрайт character, далее условие An animation is playing (Анимация проигрывается), в поле ввода текста вписываем имя анимации "moving". Далее создаем под-событие: еще раз выбираем спрайт character, затем команду Compare animation frame (Сравнить кадр анимации) и в поле ввода текста ставим значение 6, жмемFinish. Создаем еще одно под-событие: в списке выбираем объект System (Система), далее командуTrigger once while true (Выполнить один раз, если правда). Теперь создаем действие: выбираем объект XAudio2, далее команду Autoplay resource (Автопроигрывание ресурса), в активной вкладке выбираем звук character_step_left.wav и жмем Finish. Затем копируем под-событие character: Animation frame Equal to 6 вместе с под-событием Trigger once и в скопированном под-событии, в условии character: Animation frame Equal to 6 меняем 6 на кадр 14, а звук меняем на файл character_step_right.wav. В итоге у вас должно получится событие как на рисунке 120. 
Рис. 120.Запустите игру и попробуйте побегать, вы услышите характерные звуки шагов. То же самое мы должны сделать и для врага, но с одним небольшим изменением — звуки шагов врага должны быть слышны, только если мы увидим его на экране. Для этого создаем событие: выберите спрайт enemy_croc, далее команду Object is on-screen? (Объект на экране?). Теперь скопируйте событие предыдущее событие для персонажа (которое изображено на рис. 120) и вместе со всей цепочкой под-событий подставьте его под событие enemy_croc: is on-screen. Далее во всех под-событиях этого условия, где присутствует спрайт characterнужно заменить его на спрайт enemy_croc, а в действиях заменить звукиcharacter_step_left.wav и character_step_right.wav на звуки шагов для врагаcroc_step_left.wav и croc_step_right.wav. В итоге у вас должно получится событие как нарисунке 121. 
Рис. 121.Запустите игру и подойдите к врагу — вы услышите характерные металлические шаги противника. Теперь нам остается создать последнее событие, чтобы добавить в игру музыкальное сопровождение. В списке объектов выберите объект System (Система), далее команду Start of layout (При старте уровня). Если вы хотите, чтобы музыка в игре играла по кругу, то для этого ее нужно загрузить на канал. Следует учитывать, что для идеального зацикливания музыки, а точнее, чтобы не было микропаузы в момент, когда трек начинает играть сначала, нужно использоватьисключительно формат wav. Итак, создаем 2 новых действия. Действие первое: выберите объект XAudio2, далее команду Load resource (Загрузить ресурс), откроется окно, в котором под надписью Resource to load (Ресурс, который нужно загрузить) вам нужно выбрать файл music.wav, под надписью Channel (Канал) должен быть указан канал 1. Теперь в этом же окне под надписью Loop (Зацикливание) в активной вкладке выберите команду Loop (Зациклить) и жмите Finish. Действие второе: выберите объект XAudio2, далее команду Play (Воспроизвести), откроется окно, в котором под надписью Channel (Канал) должен быть указан канал 1, нажмите Finish. У вас должно получиться событие как на рис. 122. 
Рис. 122.Запустите игру и вы услышите музыку. Поздравляю! Вы создали свою первую игру!
Автор статьи: Edison
|