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'