1
resposta

Som constante da colisão a bolinha e raquete e pontuação errada

O som da colisão fica constantemente presente no jogo e a pontuação soma-se 5 ao contrário do certo que é 1. Sobre o som, eu não faço a mínima ideia, agora da soma errada acredito que seja na condição do IF

// var bol
let xbol = 300;
let ybol = 200;
let diam = 13;
let velxbol = 6;
let velybol = 6;
let raio = diam/2;


//var raquete
let xraq = 5;
let yraq = 160;
let wraq = 10;
let hraq = 80;

//var raquete oponente
let xraqop = 585;
let yraqop = 160;
let velxop;
let velybop;

//placar do jogo

mypts = 0;
oppts = 0;

//sons do jogo

let raquetada;
let point;
let trilha;

let hit = false;

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);
  showbol ();
  movimentbol ();
  colition ();
  showraq(xraq, yraq);
  movimentraq();
  movimentraqop();
  raqcolition();
  raqbolcolition(xraq, yraq);
  raqbolcolition(xraqop, yraqop);
  raqbolcolition();
  showraq(xraqop, yraqop);
  showscore();
  hitscore();

  //Solução GitHub
  raqbolcolition();

  }

function  showbol (){
  circle(xbol, ybol, diam);

}

function movimentbol (){
  xbol += velxbol;
  ybol += velybol;

}

function colition (){


    //movimento eixo x
    if (xbol + raio > width || xbol< 0){
      velxbol*=-1
    }

    //movimento eixo y
    if (ybol + raio > height || ybol < 0){
      velybol *=-1
    }


}

function showraq(x, y){

  rect(x, y, wraq, hraq);

}

function movimentraq(){
  if(keyIsDown(UP_ARROW)){
    yraq -= 10
  }
   if(keyIsDown(DOWN_ARROW)){
    yraq += 10
   }

}

function movimentraqop(){

  velyop = ybol - yraqop - wraq/2 - 30;
  yraqop += velyop;



}

function raqcolition(){
  if(xbol - raio < xraq + wraq && ybol - raio< yraq + hraq && ybol + raio > yraq + hraq){
    velxbol *= -1
    raquetada.play();

  }

}

function raqbolcolition(x, y){
   hit = collideRectCircle(x, y,wraq,hraq,xbol, ybol, raio);

      if(hit){
        velxbol *= -1
         raquetada.play();
  }

}

function showscore(){
  textSize(20);
  textAlign(CENTER);
  fill(color(255,140,0));
  rect(218, 10, 40, 20);
  fill(255);
  text(mypts,238,28);
  fill(color(255,140,0));
  rect(371, 10, 40, 20);
  fill(255);
  text(oppts, 391, 28);

}

function hitscore(){
  if(xbol > 590){
    mypts += 1;
    ponto.play();
  }
  if(xbol < 10){
    oppts += 1;
    ponto.play();
  }

}
1 resposta

Fala, Murilo! Espero que esteja tudo bem!

Dê uma olhada nessa dúvida sobre o som da raquetada em looping que respondi aqui no fórum, pois acredito que possa estar acontecendo o mesmo problema contigo

Fico no aguardo, Murilo!

Um abraço!