Если вы создаете игру, я определенно рекомендую использовать звуковую библиотеку. Например: SoundJS. Конечно, многие библиотеки разработки игр также оснащены звуковым управлением.
Простым чистым решением JS может быть инициализация звука столько раз, сколько он может перекрываться, а затем проверить, воспроизводится ли звук в настоящее время N раз и воспроизвести следующий звук, инициализированный.
Пример:
GAMEOBJECT._audio = [
new Audio('assets/snd/slide.wav'),
new Audio('assets/snd/slide.wav'),
new Audio('assets/snd/drink.wav'),
new Audio('assets/snd/drink.wav')
];
GAMEOBJECT._audio[0].pair = GAMEOBJECT._audio[1];
GAMEOBJECT._audio[2].pair = GAMEOBJECT._audio[3];
Audio.prototype.isPlaying = function() {return !this.paused;};
Audio.prototype.playSound = function() {
if (this.isPlaying()) {
this.pair.play();
}
this.play();
};
Я не понимаю вашего вопроса. Что вы подразумеваете под перекрытием? Можете ли вы изменить свой вопрос и уточнить, что вы пытаетесь сделать? – Xufox
Что не работает? В чем проблема? Где вы пытаетесь воспроизвести второй звук? Вы только разместили код для воспроизведения одного звука. – Xufox
@Xufox Я сделал это. Надеюсь, это прояснит все. – daniel098