Найти в Дзене
Сделай игру

Звук - это WEB Audio API

Как нетрудно догадаться из названия - звук я решил реализовать при помощи Web Audio API. Почитать можно тут, попробовать здесь. Если коротко - то это инструмент работы со звуком прямо из браузера: то, что нам и нужно. При создании звука, на сегодняшний день используется два основных подхода. Первый - это нужный звук записывается, загружается и проигрывается по необходимости. Второй - это генерация звука. По этому пути я и пошёл. Как это работает: сперва создаётся объект осциллятора - он создаёт звуковую волну указанной частоты, амплитуды и вида, воспроизводящую звук указанное время. При помощи дополнительных инструментов, громкость можно приглушить. Собственно, этих двух вводных достаточно, чтобы сделать простенькую озвучку для игры с аркадного автомата. Как это работает: мы собираем статистику о том, что сейчас происходит. Сколько было выпущено за последний такт ракет, сколько взорвалось пришельцев и тому подобное. Затем, при каждом такте отрисовки - проверяем эти события и включаем в

Как нетрудно догадаться из названия - звук я решил реализовать при помощи Web Audio API. Почитать можно тут, попробовать здесь.

Если коротко - то это инструмент работы со звуком прямо из браузера: то, что нам и нужно.

При создании звука, на сегодняшний день используется два основных подхода. Первый - это нужный звук записывается, загружается и проигрывается по необходимости. Второй - это генерация звука. По этому пути я и пошёл.

Как это работает: сперва создаётся объект осциллятора - он создаёт звуковую волну указанной частоты, амплитуды и вида, воспроизводящую звук указанное время. При помощи дополнительных инструментов, громкость можно приглушить. Собственно, этих двух вводных достаточно, чтобы сделать простенькую озвучку для игры с аркадного автомата.

Как это работает: мы собираем статистику о том, что сейчас происходит. Сколько было выпущено за последний такт ракет, сколько взорвалось пришельцев и тому подобное. Затем, при каждом такте отрисовки - проверяем эти события и включаем воспроизведение звука.

Количество событий, на которые надо отреагировать - может быть сколько угодно. Я выбрал следюущие:

  • moveInvaders - пришельцы переместились
  • blowupInvader - пришелец взорвался
  • blowupPlatform - взорвалась ракетная платформа
  • movePlatform - платформа двигается
  • platformFire - платформа стреляет

Но тут нельзя обойти вниманием ещё вот такую трудность: звуки, воспроизводимые одновременно, могут создавать довольно раздражающую какофонию, особенно, если они все визжаще-пищащие и воспроизводятся разом.

Чтобы этого избежать, звуки следует ранжировать и, либо, воспроизводить лишь наиболее важные, либо приглушить изначально менее важные.

Я пошёл по второму пути. Передвижение платформы - не очень важный звук, поэтому я его приглушил, а вот взрыв платформы - важный - его усилил.

#makethegame #сделайигру