13. Финальный этап «Pong». Добавление звуковых эффектов
В этом разделе мы будем добавлять звуковое эффекты. Каждый раз, когда мяч будет ударяться об стенку или же об ракетку игрока или противника, будет проигрываться звуковой эффект. Добавим узел отвечающий за звуковое сопровождение. Выберете узел уровня и перейдите к выбору узлов, начинайте водить название узла «audio...» Как вы заметили, высветилось сразу три узла под названием «AudioStreamPlayer», лишь окончание узлов отличается. К примеру узел «AudioStreamPlayer3D» будет воспроизводиться с учетом пространства и дистанции от источника звука, или к примеру какая-либо стена которая приглушала бы уровень громкости звука. С узлом «AudioStreamPlayer2D» ситуация аналогичная, только для 2д игр. Но мы воспользуемся простым звуковым эффектом который не будет реагировать на дистанцию или пространство вокруг себя «AudioStreamPlayer». Добавьте этот узел. Переименуем наш звуковой узел в «ScoreSound» (Score – счет, а Sound - звук). Теперь добавим звуковой эффект который находиться у нас в assets, у нас имеются два звука. Для озвучивания получения счета подойдет звук «ping_pong_8bit_plop.ogg», хватайте этот звук и перетаскивайте в инспектор звукового эффекта узла «ScoreSound» в опцию «Stream» Давайте изучим некоторые опции узла звукового эффекта Опция «Playing» будет проигрывать звук, когда включен чек бокс. При чем циклически будет воспроизводиться звук. «Autoplay» будет запускать звук, когда будет запускаться игра. Если мы нажмем на чек бокс опции «Playing», то услышим монотонный повторяющий звук, что очень мешает услышать сам звук. Так как годот циклически крутит звук это создает проблему. Давайте это решим, убедимся, что мы выбрали в файловой системе наш звук перейдем к дереву сцен, рядом есть вкладка «Импорт». Перейдите в эту вкладку. Ниже мы можем заметить опцию «Loop» - виновник нашего торжества. Опция циклически заставляет воспроизводить звук. Отключите её. И переимпортируйте файл. А теперь вы можете прослушать звук в инспекторе если еще раз попробуете включать или выключать опцию проигрывание «Playing». Давайте сразу переимпортируем наш второй звук «ping_pong_8bit_beeep.ogg», отключив цикличность в импорте. Проделайте это сами. Второй звук будет отвечать за отскок мяча. Перейдем к скрипту нашего уровня. У нас есть собственная функция где идет позиционирование нашего мяча, когда тот вылетит за пределы экрана, вот там то мы и воспроизведем звук. Обратимся к звуковому узлу и пропишем ему метод «play()» который запустит звук когда мяч вылетит за экран. Протестируйте игру, пускай мяч вылетит за пределы экрана, и вы тут же услышите звуковой эффект. Теперь давайте зададим звук и мячу, перейдите в сцену мяча, заранее добавим узел звука. Добавите его прикрепив к узлу мяча. Выше уже рассказывалось как добавлять звуковой узел. И переименуйте его в CollisionSound (Collision – столкновение, Sound - звук). Добавим наш второй звук, звук столкновения из файловой системы с папки «Assets» звук «ping_pong_8bit_beeep.ogg» в опцию «Stream». Перейдите к скрипту мяча, здесь у нас уже есть проверка на столкновение. И если столкновение было идет отскок мяча, вот там и запишем воспроизведения нашего звука. Снова обратитесь к узлу и пропишите метод «play()» Теперь мяч будет воспроизводить звук удара об ракетку или стенку. Но этой ноте можно было бы закончить проект, но давайте пофиксим один баг который иногда появлялся во время игры. Иногда мяч отскакивающий от угла ракетки сдвигал саму ракетку. Мы будем устанавливать на прямую позицию ракеток каждый раз, когда мяч будет вылетать за пределы экрана. Перейдите к скрипту уровня и там, где у нас запускается звуковой эффект, мы будем устанавливать позиции наших ракеток. Позиция ракетки игрока будут равняться 40 единицам по оси Х А позиция ракетки соперника будет равна ширина игрового экрана (1280 пикселей) минус 40 единиц по оси Х. Теперь даже если ракетка сместиться, она вернется, как только мяч вылетит за пределы экрана. На этом разработка игры «Pong» окончено. Создание архива игры еще будут затрагиваться, но уже в других темах по Godot’у. Вы спросите почему так сильно был растянут проект по понгу, ответ прост, я знакомил вас с игровым движком Godot Engine. Но это еще не конец, далее мы будем разбирать следующий проекты, на очереди проект «Арконоид». Теперь дальнейшая разработка будет идти более ускоренно, это с учетом того что вы уже частично, но знакомы с движком. Приятно было с вами работать, а теперь вы можете загрузить игру и испробовать её сами. Здесь. Да новых встреч, с вами был Доктор Баг.
| |
| |
Просмотров: 80 | |
Всего комментариев: 0 | |
| |