sounds
sounds
Автоматически переведённая страница
К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).
Объект sounds содержит методы, позволяющие воспроизводить звуковые эффекты в вашей игре, применять к ним фильтры и изменять их громкость. В редакторе звука также можно установить диапазон значений для фильтров (колебание, искажение, реверберация и т. д.), чтобы добавить разнообразия. Например, это может быть полезно, если нужно немного изменить высоту звуков шагов или монет, чтобы избежать их монотонности.
Кроме того, теперь можно добавлять варианты звуков, и при воспроизведении звука будет случайным образом выбран один из них.
Техническая информация
Начиная с версии 4, ctjs использует библиотеку pixi-sound. Вы можете получать экземпляры класса Sound в словаре res.pixiSounds.
Вопроизведение звука и работа с ним
Большую часть времени вы будете играть звук, например, так:
sounds.play('MySound');sounds.play 'MySound';Если звук — это музыкальная композиция, вы можете повторять ее воспроизведение так:
sounds.play('MyTrack', { loop: true });soundSettings =
loop: true
sounds.play 'MyTrack', soundSettings;sounds.play(name: string, options?: object)
Воспроизведение звука, созданного в ctjs.
| Аргумент | Тип | Описание |
|---|---|---|
name | string | Имя звука |
options | object | опционально Опции, используемые для воспроизведения звука. |
options.start | number | смещение времени начала, в секундах |
options.end | number | Конечное время, в секундах |
options.loop | boolean | Если установить значение true, звук будет воспроизводиться в цикле. |
options.filters | filters.Filter[] | Фильтры pixi-sound, которые необходимо применить |
options.complete | Function | Обратный вызов, вызываемый при завершении воспроизведения звука. |
options.loaded | Function | Если звук не предварительно загружен, этот функцию будет вызван при завершении загрузки звукового файла. |
options.muted | boolean | Если звук по умолчанию замолчен. |
options.singleInstance | boolean | Установка значения true останавливает любые воспроизводимые экземпляры. |
options.speed | number | Скорость воспроизведения звука; по умолчанию используется настройка скорости звука. |
options.volume | number | Заменяет громкость звука; значение по умолчанию: 1. |
Возвращает либо экземпляр звука, либо промис, который разрешается в экземпляр звука.
См. IMediaInstance.
sounds.playAt(name: string, position: { x: number, y: number }, options?: object)
Воспроизведение 3D-звука в заданной позиции. Вы можете установить аргумент 'position' как копию, и звук будет следовать за копией при ее перемещении. Чтобы сделать звук неподвижным, передайте объект с неизменными ключами 'x', 'y'. Объект options тот же, что и для метода sounds.play.
Пример: Воспроизвести 3D-звук, который следует за текущей копией
sounds.playAt('MySound', этот);sounds.playAt 'MySound', this;Пример: воспроизвести 3D-звук под текущей копией, но не следовать за ней
sounds.playAt('МойЗвук', {x: this.x, y: this.y});pos =
x: @x
y: @y
sounds.playAt('МойЗвук', pos)sounds.stop(name: string | IMediaInstance)
Остановляет указанный звук при указании имени. В противном случае останавливает все звуки в игре.
sounds.pause(name?: string)
Приостанавливает указанный звук, если указано имя. В противном случае он приостанавливает все звуки в игре.
sounds.resume(name?: string)
Оставляет текущий звук, если указано имя. В противном случае возобновляет все звуки в игре.
Возвращает Булево значение.
sounds.playing(name?: string)
Возвращает, воспроизводится ли сейчас звук с указанным именем, если указано, или какой-либо звук, если не указано.
Возвращает Булево значение.
sounds.volume(name: string | IMediaInstance, volume?: number)
Получает или устанавливает громкость звука, при этом volume принимает значение от 0 до 1, где 1 означает 100% громкости. Если volume не указан, будет возвращена существующая громкость.
Возвращает Number. Текущая/новая громкость звука.
sounds.globalVolume(value: number)
Устанавливает глобальный уровень громкости для всех звуков. 'value' - это число от 0 до 1, где 1 соответствует 100% громкости.
sounds.speed(name: string | IMediaInstance, value?: number)
Устанавливает скорость воспроизведения звука, где 1 соответствует 100%. Если параметр value не указан, будет возвращена текущая скорость.
Возвращает число. Текущую или новую скорость звука.
sounds.speedAll(value: число)
То же самое, что и выше, но для всех звуков.
sounds.toggleMuteAll()
Переключает свойство "mute" для всех звуков.
Возвращает логическое значение. "true", если все звуки заглушены.
sounds.togglePauseAll()
Переключает свойство паузы для всех звуков.
Возвращает логическое значение. true, если все звуки опущены.
sounds.fade(name?: string | IMediaInstance | SoundLibrary, newVolume?, duration?)
Снижает громкость звука до заданного уровня. Может повлиять на конкретный экземпляр или на всю группу.
Аргументы:
name: строка | IMediaInstance | SoundLibrary - имя звука или экземпляр, который нужно повлиять. Если пусто, то все звуки стираются.newVolume: число | опционально - новый уровень громкости, где 1 соответствует 100%. По умолчанию 0.duration: число | опционально - длительность перехода в миллисекундах. По умолчанию 1000.
// Снижение громкости всех звуков до нуля (по умолчанию) с длительностью 1000 миллисекунд (по умолчанию).
sounds.fade();# Снижение громкости всех звуков до нуля (по умолчанию) с длительностью 1000 миллисекунд (по умолчанию).
sounds.fade()// Увеличение громкости 'MySound' до уровня 1 за 2000 миллисекунд.
sounds.fade('MySound', 1, 2000);# Увеличение громкости 'MySound' до уровня 1 за 2000 миллисекунд.
sounds.fade 'MySound', 1, 2000Добавление фильтров к звукам
sounds.addDistortion(name: string, amount: number)
Добавляет фильтр искажения.
| Аргумент | Тип | Описание |
|---|---|---|
name | string | Имя звука, к которому нужно применить эффект. Если установить false, то применяет фильтр ко всем звукам. |
amount | number | Степень искажения от 0 до 1. По умолчанию равно 0. |
sounds.addEqualizer(name: string, f32: number, f64: number, f125: number, f250: number, f500: number, f1k: number, f2k: number, f4k: number, f8k: number, f16k: number)
Добавляет фильтр эквалайзера.
| Аргумент | Тип | Описание |
|---|---|---|
name | string | Имя звука, к которому нужно применить эффект. Если установить false, то применяет фильтр ко всем звукам. |
Band frequences | number | По умолчанию коэффициент усиления для каждой частоты. По умолчанию равно 0. Рекомендуемые значения варьируются от -40 до 40. |
sounds.addMonoFilter(name: string)
Объединяет все каналы в один монофонический канал.
| Аргумент | Тип | Описание |
|---|---|---|
name | string | Имя звука, к которому нужно применить эффект. Если установить false, то применяет фильтр ко всем звукам. |
sounds.addReverb(name: string, seconds: number, decay: number, reverse: boolean)
Добавляет фильтр реверберации.
| Аргумент | Тип | Описание |
|---|---|---|
name | string | Имя звука, к которому нужно применить эффект. Если установить false, то применяет фильтр ко всем звукам. |
seconds | number | Продолжительность реверберации. По умолчанию равно 3. |
decay | number | Длина затухания. По умолчанию равно 2. |
reverse | boolean | Реверберация в обратном направлении. По умолчанию равно false. |
sounds.addStereoFilter(name: string, pan: number)
Добавляет фильтр для стерео панорамирования.
| Аргумент | Тип | Описание |
|---|---|---|
name | string | Имя звука, к которому нужно применить эффект. Если установить false, то применяет фильтр ко всем звукам. |
pan | number | Степень панорамирования, -1 — левый канал, 1 — правый канал, 0 — центрированный. По умолчанию равно 0. |
sounds.addTelephone(name: string)
Добавляет фильтр телефонного звука.
| Аргумент | Тип | Описание |
|---|---|---|
name | string | Имя звука, к которому нужно применить эффект. Если установить false, то применяет фильтр ко всем звукам. |
NB: Можно добавить несколько фильтров к одному звуку.
sounds.addReverb('MySound', 5, 7);
// Если звук не воспроизводится, он не будет воспроизводиться до тех пор, пока вы не вызовете метод "play".
sounds.play('MySound');sounds.addReverb 'MySound', 5, 7
# Если звук не воспроизводится, он не будет воспроизводиться до тех пор, пока не будет вызван метод "play".
sounds.play 'MySound'sounds.removeFilter(name: string, filter?: string)
Удаляет фильтр со указанного звука или со всех звуков, если имя установить в false.
Если filter не указан, удаляются все фильтры.
Разные методы
sounds.exists(имя: строка)
Возвращает, существует ли в игре звук с указанным именем. Это не проверяет, полностью ли загружен звук, это просто проверяет наличие метаданных звука в вашей игре.
sounds.load(name: string)
Предзагружает звуковой файл. Это обычно применяется к музыкальным файлам, которые не загружаются по умолчанию перед воспроизведением.
Возвращает Обещание, разрешающее имя загруженного звукового ассета.
Пример: Предзагрузка фонового музыки перед переходом в комнату
sounds.load('BackgroundMusic')
.then(() => {
rooms.switch('MainRoom');
});sounds.load 'BackgroundMusic'
.then =>
rooms.switch 'MainRoom'Links:
- JavaScript: язык программирования, основанный на прототипах, который используется для создания интерактивных веб-страниц.
- CoffeeScript: язык программирования, компилирующийся в JavaScript, который позволяет писать более краткий и понятный код.
Пример: Предзагрузка нескольких звуковых файлов перед переходом в комнату
var soundsToLoad = [],
soundNames = ['AmbientMusic', 'BattleMusic', 'VictoryMusic'];
for (var i = 0; i < soundNames.length; i++) {
soundsToLoad.push(sounds.load(soundNames[i]));
}
Promise.all(soundsToLoad).then(() => {
rooms.switch('MainRoom');
});soundsToLoad = []
for sound in ['AmbientMusic', 'BattleMusic', 'VictoryMusic']
soundsToLoad.push sounds.load sound
Promise.all soundsToLoad
.then ->
rooms.switch 'MainRoom'