Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

crash no som final

// VARIAVEIS BOLINHA //

var xBolinha = 300;
var yBolinha = 200;
var diametro = 18;
var raio = diametro / 2;

var velocidadeX = 12;
var velocidadeY = 12;

// VARIAVEIS RAQUETE

var xRaquete = 5;
var yRaquete = 150;
var comprimento = 10
var altura = 100

// VARIAVEIS OPONENTE //

var colidiu = false;
var xRaqueteOponente = 585;
var yRaqueteOponente = 150;
var velocidadeYOponente;

var meusPontos = 0;
var pontosOponente = 0;

// sons //

var raquetada;
var ponto;
var trilha;

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

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

  function draw() {
  background(0);

  desenhaBolinha();
  movimentaBolinha();
  colisaoBorda();
  desenhaRaquete(xRaquete, yRaquete);
  desenhaRaquete(xRaqueteOponente, yRaqueteOponente);// OPONENTE // 
  movimentaRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);// OPONENTE //
  movimentaRaqueteOponente();
  incluiPlacar();
  marcaPonto();
}

 // ESTRUTURA BOLINHA //

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

  function movimentaBolinha()  {
  xBolinha += velocidadeX;
  yBolinha += velocidadeY;
}

  function colisaoBorda(){

  if(xBolinha + raio > width || xBolinha - raio < 0){
    velocidadeX *= -1;
    }
      if(yBolinha + raio > height || yBolinha - raio < 0){
    velocidadeY *= -1;
    }
  }

 // ESTRURURA DA RAQUETE //

  function desenhaRaquete(x, y){
    rect (x, y, comprimento, altura);
  }

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

  function verificaColisaoRaquete()  {
    if(xBolinha - raio < xRaquete + comprimento
       && yBolinha - raio < yRaquete + altura
         && yBolinha + raio > yRaquete){
           velocidadeX *= -1;
      raquetada.play();
    }


  }

  function verificaColisaoRaquete(x, y)  {
      colidiu =    
      collideRectCircle (x , y, comprimento, altura, xBolinha, yBolinha, raio ) ;
     if(colidiu){
       velocidadeX *= -1;
       raquetada.play();
     }
  }

  function   movimentaRaqueteOponente()  {
   velocidadeYOponente = yBolinha - yRaqueteOponente - comprimento / 2 - 80;

   yRaqueteOponente += velocidadeYOponente;
    raquetada.play();

  }

  function incluiPlacar()  {
    stroke(255);
    textAlign(CENTER);
    textSize(20);
    fill(color(255, 140, 0));
    rect(200, 10, 40, 30);
    fill(255);
    text(meusPontos, 220, 30);
    fill(color(255, 140, 0));
    rect(400, 10, 40, 30);
    fill(255);
    text(pontosOponente, 420, 30);
  }

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

apos rodar o codigo , existe um ruido muito alto de fundo que impede de escutar o som das demais funçoes

1 resposta
solução!

Olá, Murilo! Tudo bem por aí?

Chequei seu código e está bem bacana, o problema do som ocorreu porque você inseriu a variável raquetada e chamou o método play() dentro da function movimentaRaqueteOponente(), e todas as vezes que a raquete se movimenta ela toca o som da raquetada. Para solucionar basta que você retire o raquetada.play(); de dentro da função.

A função refatorada vai ficar assim:

function   movimentaRaqueteOponente()  {
   velocidadeYOponente = yBolinha - yRaqueteOponente - comprimento / 2 - 80;

   yRaqueteOponente += velocidadeYOponente;

  }

Uma outra sugestão é que você declare as variáveis com a palavra reservada let, a var funciona mas é considerada uma má prática no ambiente de desenvolvimento com a linguagem JavaScript por questões de escopo e referência.

Espero que as informações tenham ajudado!

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solução ✓.Bons Estudos!