Oi Robert, tudo bem?
Pelo que você comentou parece que o p5 está tendo problemas em fazer o carregamento dos seus sons. Para resolver sugiro que você verifique se os seguintes passos foram dados:
Baixe novamente os arquivos e lembre-se de descompactar a pasta;
Selecione a seta que fica ao lado de "Sketch Files" no canto superior da tela e selecione a opção "Upload File";
Clique dentro do campo e selecione um som de cada vez, para garantir que todos eles serão carregados completamente;
Atente-se para a grafia do nome do arquivo inserido na função preload()
para que você não coloque nenhum espaço a mais ou insira o nome com alguma letra trocada. função preload()
:
let raquetada;
let ponto;
let trilha;
function preload() {
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}
Espero ter ajudado. Caso tenha outras dúvidas, estarei à disposição!
Abraços!
ainda sim o erro permanece
Oi, Robert!
Ao analisar o seu código percebi que os nomes dos arquivos estão diferentes do nome utilizado para chamá-los na função preload()
.
Nos arquivos que ficam ao lado da tela de edição do código os arquivos recebem no início dos seus nomes os sinais de ponto e underline (.), sendo escritos da seguinte maneira: ".trilha.mp3", ".ponto-1.mp3" e ".raquetada.mp3".
Na função preload()
o código está escrito da seguinte maneira:
function preload() {
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}
Podemos solucionar o problema renomeando os arquivos na função preload()
ou na área "Sketch Files".
Para renomear os arquivos no "Sketch Files" você pode selecionar o arquivo e clicar na seta que irá aparecer no canto direito, em seguida, basta selecionar a opção "rename" e escrever o novo nome do arquivo. Lembre-se de não apagar o ".mp3" no final do arquivo para que o programa possa reconhecê-lo como um arquivo de áudio.
Caso queira manter os nomes do arquivo como estão na área "Sketch Files" com o uso do ponto e do underline (._) ao carregar os arquivos no jogo você terá o seguinte problema: "EncodingError: Failed to execute 'decodeAudioData' on 'BaseAudioContext'", pois o ponto no começo do nome do arquivo vai indicar que na sequência virá uma extensão de arquivo, como por exemplo ".png" para imagens, ".mp4" para vídeos ou ".mp3" para sons como é o caso gerando este erro.
Se quiser que os arquivos fiquem agrupados no começo da lista no "Sketch Files" recomendo que você utilize a nomenclatura iniciando pelo número 0 seguido de um traço. Por exemplo: "0-ponto.mp3", "0-trilha.mp3" e "0-raquetada.mp3".
Desse modo os arquivos ficarão assim:
Na função preload()
basta chamar os arquivos da seguinte maneira:
function preload() {
trilha = loadSound("0-trilha.mp3");
ponto = loadSound("0-ponto.mp3");
raquetada = loadSound("0-raquetada.mp3");
}
Para que a trilha toque ininterruptamente é preciso colocar na função setup()
a variável criada para a trilha com a propriedade .loop()
:
function setup() {
createCanvas(600, 400);
trilha.loop();
}
Para marcar o som do ponto e da raquetada sejam tocados no momento adequado devemos chamá-las nas funções colisaoBiblioteca(x,y)
e marcaPonto()
respectivamente utilizando a variável criada para cada uma com a propriedade .play()
:
function colisaoBiblioteca(x, y){
colidiu = collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio);
if(colidiu){
velocidadeXBolinha *= -1;
raquetada.play();
}
}
function marcaPonto(){
if(xBolinha > 590){
meusPontos +=1;
somPonto.play();
}
if(xBolinha <10){
pontosOponente +=1;
somPonto.play();
}
}
Espero que dê tudo certo e caso tenha dúvidas, estarei à disposição!
Abraços!