Создать массив звуков и «выбрать» случайный звук из массива:
let sounds = [bird, bird2, bird3];
let randomSound = sounds[Math.floor(Math.random()*sounds.length)];
Math.random()
генерирует случайное число в диапазоне от 0,0 до 1,0. Так что Math.random()*sounds.length
- это число с плавающей запятой> = 0.0 и <<code>sounds.length. Math.floor
получает целое значение, которое меньше или равно числу.
Если кнопка мыши нажата несколько раз, будет воспроизводиться несколько звуков. Чтобы обеспечить одновременное воспроизведение только одного звука, необходимо записать текущий звук в переменной (currentSound
) и проверить, завершился ли звук, прежде чем вы сможете начать новый звук.
Кроме того, используйте mousePressed()
обратный вызов, а не встроенная переменная состояния mouseIsPressed
. Событие происходит только один раз, когда мышь нажата, а переменная указана, пока мышь нажата. например:
function draw() {
}
let currentSound;
function mousePressed() {
let is_playing = currentSound && currentSound.isPlaying();
if (!is_playing) {
let sounds = [bird, bird2, bird3];
currentSound = sounds[Math.floor(Math.random()*sounds.length)];
currentSound.playMode('untilDone');
currentSound.play();
currentSound.setVolume(0.3);
}
}