Всем привет. Такой вопрос. Я сделал игру монополия, чтобы играть в браузере через локалку. Сегодня добавлял в неё звуки - бросание костей. Есть два файла shaking.mp3 и throwing.mp3. На отдельной страничке отдельно звуки при таком коде:
var throwing = [{start: 0 , duration: 1000},
{start: 2.2 , duration: 1200},
{start: 3.6 , duration: 800},
{start: 5.6, duration: 1200}];
var shaking = [ {start: 0 , duration:1100 }, //годятся все
{start: 1.6 , duration: 1100},
{start: 8.1 , duration: 1000},
{start: 11.1, duration: 1000},
{start: 13.7 , duration:1200 },
{start: 21.8, duration: 1000},
{start: 24.4, duration: 1200}];
function play() {
var promise = new Promise(function(resolve, reject){
var audio = document.createElement('audio');
var pos = shaking[random(0, shaking.length-1)];
audio.src = 'img/shaking.mp3';
document.body.appendChild(audio);
audio.currentTime = pos.start;
audio.play();
setTimeout(function () {
document.body.removeChild(audio);
resolve();
}, pos.duration);
});
promise.then(()=>{
var audio = document.createElement('audio');
var pos = throwing[random(0, throwing.length-1)];
audio.src = 'img/throwing.mp3';
document.body.appendChild(audio);
audio.currentTime = pos.start;
audio.play();
setTimeout(function () {
document.body.removeChild(audio);
}, pos.duration);
});
}
function random(min, max) {
return Math.round(Math.random() * (max -min)+min);
}
работают. Т.е. есть кнопка, по нажатию на которую через рандом выпадает случайное время - начало звука из файла(звуков в файле несколько) и его продолжительность, по истечении которой звук удаляется и скрипт запускает тоже самое для второго звукового файла. Так вот, на отдельной страничке эта котовасия работает как надо, а в составе целиком проекта звуки проигрываются всегда одинаковые, хотя код перенесён этот же. Причём даже не меняются. Такое ощущение было, что рандом выдаёт всегда одно значение, но. Рандом, я смотрел в проекте, он генерирует разное - то есть с ним всё нормально. Пробовал рандом в 0 установить, чтобы физически поменять звуки - не помогло. Подскажите в чём может быть проблема и как её решить?