Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Projeto finalizado porém com bug no audio :(

Terminei o projeto e coloquei uma pontuação final pra informar se o usuário ganhou ou perdeu, porém o som no final da um bug e eu não consegui arrumar. Tentei colocar um stop mas não funcionou. Estou aberto a sugestões.

https://editor.p5js.org/Vanessa_Bassi/sketches/C-vTSGYXt

4 respostas

Olá, Everton! Como você está?

Seu jogo está incrível, parabéns pelas novas implementações, e pelo empenho também!

Testei seu jogo e percebi que faltou apenas inserir uma instrução para interromper a música com o método stop(). Vou deixar a função final() completa com a pequena modificação para você testar também, ok?


function final() {
  if(meusPontos == 100) {
    textSize(20);
    textFont('Press Start 2P')
    fill(255);
    text('Você venceu !!!', 300, 100);
    trilha.stop();
    vitoria.play();
    vitoria.stop();
    xBolinha = 300;
    yBolinha = 200;
    velocidadeXBolinha = 0;
    velocidadeYBolinha = 0;
  }
  if(pontosOponente == 100) {
    textSize(20);
    textFont('Press Start 2P')
    fill(255);
    text('Você perdeu !!!', 300, 100);
    trilha.stop();
    perdeu.play();
    perdeu.stop(); //bem aqui inseri o stop().
    xBolinha = 300;
    yBolinha = 200;
    velocidadeXBolinha = 0;
    velocidadeYBolinha = 0;
  }
}

Espero que as informações tenham ajudado!

Um forte abraço e bons estudos!

Olá Camila, obrigado pela dica.

Porém ao adicionar o perdeu.stop() ele não toca o som perdeu.mp3.

solução!

Oi, Everton! Desculpe-me, nem notei!

Realmente o som estava com problema e resolvi interrompendo a execução da function final() na draw() com o método noLoop(). Vou deixar o código aqui.

function final() {
  if(meusPontos == 100) {
    textSize(20);
    textFont('Press Start 2P')
    fill(255);
    text('Você venceu !!!', 300, 100);
    trilha.stop();
    vitoria.play();

    xBolinha = 300;
    yBolinha = 200;
    velocidadeXBolinha = 0;
    velocidadeYBolinha = 0;
  }
  if(pontosOponente == 100) {
    textSize(20);
    textFont('Press Start 2P')
    fill(255);
    trilha.stop();

    text('Você perdeu !!!', 300, 100);

    xBolinha = 300;
    yBolinha = 200;
    velocidadeXBolinha = 0;
    velocidadeYBolinha = 0;
    perdeu.play();
    noLoop(); //inseri a interrupção aqui

  }
}

Caso tenha alguma outra dúvida, segue o link com a cópia do seu projeto e algumas modificações que fiz:

https://editor.p5js.org/miasensei/sketches/oknnmz0EN

Espero que tenha ajudado!

Um abraço e até breve!!

Obrigado pela ajuda