1
resposta

O som da raquetada está bugado, como faço pra ajustar?

Fica tocando um som alto em loop sem parar, somente parou de tocar o som quando comentei com // o som da raquetada e identifiquei que era ele.

//variáveis da bolinha
let xBolinha = 300; 
let yBolinha  = 200;
let diametro = 15;
let raio = diametro / 2;


//variáveis da minha raquete
let xRaquete = 5;
let yRaquete = 150;
let larguraRaquete = 10;
let alturaRaquete = 90;

//variáveis da raquete do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

//variáveis da velocidade da bolinha
let velocidadeXBolinha = 7;
let velocidadeYBolinha = 7;

//variável colisão

let colidiu = false;

//variáveis do placar

let meusPontos = 0;
let pontosDoOponente = 0;

//variáveis sons do jogo

let raquetada;
let ponto;
let trilha;

function preload () {
  trilha = loadSound ("trilha.mp3");
  ponto = loadSound ("ponto.mp3");
  raquetada = loadSound ("raquetada.mp3");
}

function setup() {
  trilha.loop ();
  createCanvas(600, 400); 
}

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBordas();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinhaRaquete();
  //verificaColisaoRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);
  mostraRaquete (xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente ();
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
  incluiPlacar ();
  marcaPonto();

}

  function mostraBolinha () {
      circle (xBolinha, yBolinha, diametro);
     }

  function movimentaBolinha () {
      xBolinha += velocidadeXBolinha; 
      yBolinha += velocidadeYBolinha;
  }

  function verificaColisaoBordas () {
    if (xBolinha + raio > width || xBolinha < raio) {
  velocidadeXBolinha *= -1;
  }
    if (yBolinha + raio > height|| yBolinha < raio) {
  velocidadeYBolinha *= -1;
  }
  }

  function mostraRaquete (x,y) {
    rect (x, y, larguraRaquete, alturaRaquete);
}

  function movimentaMinhaRaquete () {
    if (keyIsDown(UP_ARROW)) {
      yRaquete -= 10;
    }
    if (keyIsDown(DOWN_ARROW)) {
      yRaquete += 10;
    }
  }

  function verificaColisaoRaquete() {
    if (xBolinha - raio < xRaquete + larguraRaquete
       && yBolinha - raio < yRaquete + alturaRaquete
       && yBolinha + raio > yRaquete) {
       velocidadeXBolinha *= -1;
    }
}

  function  verificaColisaoRaquete(x,y) {
    colidiu = 
    collideRectCircle(x,y, larguraRaquete, alturaRaquete, xBolinha, yBolinha, raio);
    if (colidiu) {velocidadeXBolinha *= -1};
    raquetada.play ();
  }

  function movimentaRaqueteOponente() {
    velocidadeYOponente = yBolinha - yRaqueteOponente - larguraRaquete / 2 - 30;
    yRaqueteOponente += velocidadeYOponente
}

  function incluiPlacar () {
    stroke (255);
    textAlign(CENTER);
    textSize(16);
    fill (color(255, 140, 0));
    rect (150, 10, 40, 20);
    fill (255);
    text (meusPontos, 170, 26);
    fill (color(255,140,0));
    rect (450, 10, 40, 20);
    fill (255);
    text (pontosDoOponente, 470,26);
  }

  function marcaPonto () {
    if (xBolinha < 10) {
      pontosDoOponente +=1;
     ponto.play ();
    }
    if (xBolinha > 590) {
      meusPontos +=1
      ponto.play ();
    }
  }
1 resposta

Fala, Fernando! Tudo bem contigo?

O que ocorreu foi um fechamento de chave isolando o som da raquetada, fazendo com que ela execute sem parar, como em um looping infinito

  function  verificaColisaoRaquete(x,y) {
    colidiu = 
    collideRectCircle(x,y, larguraRaquete, alturaRaquete, xBolinha, yBolinha, raio);
    if (colidiu) {velocidadeXBolinha *= -1};
    raquetada.play ();
  }

Basta fecharmos essa chave após a raquetada.play()

    if (colidiu) {velocidadeXBolinha *= -1;
    raquetada.play ();
    }
  }

Espero ter ajudado!!!

Um abraço e bons estudos