3
respostas

o jogo não carrega após adicionar os sons do jogo

3 respostas

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";

    Captura de tela colorida do p5.js mostrando o menu “Sketch Files” no lado direito com uma aba contendo três itens: “Create Folder” , “Create File” e “Upload File” destacado em rosa. Ao lado há um campo contendo códigos referentes ao jogo.

  • Clique dentro do campo e selecione um som de cada vez, para garantir que todos eles serão carregados completamente;

    Gif colorido da tela do p5.js. O vídeo mostra um quadrado cinza escuro com outro quadrado menor em seu interior com o título “Upload File”. Uma seta clica dentro do quadrado branco e  uma pasta é aberta. Em seguida o mouse clica no som da "trilha.mp3" e o som é carregado para dentro do quadrado. No fundo da imagem, no lado esquerdo, há o campo contendo códigos e ao lado direito a pré-visualização do jogo mostrando a imagem da estrada e de carros passando por ela.

  • 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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

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".

Captura de tela colorida do site p5. A imagem mostra uma área dividida ao meio em duas seções. No lado esquerdo há uma um título "Sketch Files" e uma lista de sete arquivos na seguinte ordem: ._ponto-1.mp3 , ._raquetada.mp3, ._trilha.mp3, index.html, p5.collide2d.js, sketch.js e style.css. Os três primeiros arquivos estão envoltos em um retângulo vermelho. No lado direito é possível ver de cima para baixo e da esquerda para a direita uma seta apontando para o lado esquerdo e algumas linhas de código enumeradas

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:

Captura de tela colorida do site p5. A imagem mostra uma área dividida ao meio em duas seções. No lado esquerdo há uma um título "Sketch Files" e uma lista de sete arquivos na seguinte ordem: 0-ponto.mp3 , 0-raquetada.mp3, 0-trilha.mp3, index.html, p5.collide2d.js, sketch.js e style.css. Os três primeiros arquivos estão envoltos em um retângulo vermelho. No lado direito é possível ver de cima para baixo e da esquerda para a direita uma seta apontando para o lado esquerdo e algumas linhas de código enumeradas

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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!