Olá, tudo bem?
Eu também estava tendo este mesmo problema.
Acredito que o problema era que estávamos dando o mesmo nome para duas funções diferentes. Onde, usamos o nome 'preload' para a função que trazia as imagens, e também de 'preload' a função que carrega os sons.
Uma alternativa que eu consegui, para fazer rodar, foi de separar tudo em três arquivos .js diferentes. Um para as imagens, um para os sons e outro para o carregamento desses arquivos.
Aí em cada um deles eu criei uma função para compilar as informações, pra em seguida eu carregar elas dentro da função 'preload'.
Ficou mais ou menos assim:
No arquivo de Imagens.js
// Imagens do Jogo
let imagemDaEstrada;
let imagemDoAtor;
let imagemCarro;
let imagemCarro2;
let imagemCarro3;
function chamaImagens(){
imagemDaEstrada = loadImage('Imagens/estrada.png');
imagemDoAtor = loadImage('Imagens/ator-1.png');
imagemCarro = loadImage('Imagens/carro-1.png');
imagemCarro2 = loadImage('Imagens/carro-2.png');
imagemCarro3 = loadImage('Imagens/carro-3.png');
imagemCarros = [imagemCarro, imagemCarro2, imagemCarro3, imagemCarro1, imagemCarro2, imagemCarro3]
}
Agora no arquivo de Sons.js
// Sons do Jogo
let somDaTrilha;
let somDaColisao;
let somDoPonto;
function chamaSons(){
somDaTrilha = loadSound('Sons/trilha.mp3');
somDaColisao = loadSound('Sons/colidiu.mp3');
somDoPonto = loadSound('Sons/pontos.wav');
}
Aí, depois de tudo, eu usei a função 'preload' pra carregar tudo junto, dentro do arquivo Preload.js:
// Carrega arquivos
function preload(){
chamaImagens();
chamaSons();
}
Depois que eu fiz isso, funcionou :D
Espero ter ajudado
Abraço