Tipol by som to na bug Chrome s kombináciou zvukovky. Na inom PC to robí to isté? Verzia Chrome je posledná? Robí to aj Canary?
Inak kód by som možno skrátil nejako takto (netestované):
function BlockType(name) {
this.name = name;
this.audio1 = new Audio(name + '1.wav');
this.audio2 = new Audio(name + '2.wav');
}
var blockTypes = {
1: new BlockType('grass'),
2: new BlockType('dirt'),
7: new BlockType('wood')
};
var stepAudio = null;
var isOddStep = false;
...
if (!stepAudio) {
var blockId = blocks[i].id;
var blockType = blockTypes[blockId];
if (blockType) {
stepAudio = (isOddStep = !isOddStep) ? blockType.audio1 : blockType.audio2;
stepAudio.onended = function() {
stepAudio.onended = null;
stepAudio = null;
};
stepAudio.play();
}
}
V princípe ide o to, aby si nemusel upravovať celý program, keď budeš chcieť pridať nový typ bloku.Edit: Možno by som to skúsil ešte prekódovať do OGG alebo MP3, to by mohlo pomôcť.