1
resposta

Quando eu vou testar, o som da 'raquetada' fica se repetindo continuamente como se a bolinha não parasse de encostar nas raquetes, ficando impossível de jogar assim, como resolver?

//Variaveis da Bolinha
let xBolinha = 300
let yBolinha = 200
let diametro = 20
let raio = diametro/2

//Variaveis da Velociade da bolinha
let velocidadeXDaBolinha = 6
let velocidadeYDaBolinha = 6


//Variaveis da Minha Raquete
let xMinhaRaquete = 5
let yMinhaRaquete = 150
let comprimentoRaquete = 10
let alturaRaquete = 90



//Variaveis da Raquete Oponente
let xRaqueteOponente = 585
let yRaqueteOponente = 150
let velocidadeYOponente;
let chanceDeErrar = 0;

let colidiu = false;

//Placar do Jogo
let meusPontos = 0;
let pontosOponente = 0;

//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() {
  createCanvas(600, 400);
  trilha.loop()
}

function draw() {
    background(0);
    mostraBolinha();
    movimentaBolinha();
    colisaoBorda();
    Raquete(xMinhaRaquete, yMinhaRaquete);
    Raquete(xRaqueteOponente, yRaqueteOponente)
    movimentoMinhaRaquete();
    //colisaoMinhaRaquete();
    colisaoMinhaRaqueteBiblioteca();
    movimentoRaqueteOponente();
    colisaoRaqueteOponenteBiblioteca();
    incluiPlacar();
    marcaPonto();

}

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

function movimentaBolinha(){
  xBolinha += velocidadeXDaBolinha;
  yBolinha += velocidadeYDaBolinha;
  }

function colisaoBorda(){
  if(xBolinha+raio > width || xBolinha-raio < 0){
    velocidadeXDaBolinha *= -1
  }

  if(yBolinha+raio > height || yBolinha-raio < 0){
    velocidadeYDaBolinha *= -1
  }
}

function Raquete(x, y){
  rect(x, y, comprimentoRaquete, alturaRaquete);
}

function movimentoMinhaRaquete(){
    if (keyIsDown(UP_ARROW)) {
        yMinhaRaquete -= 10;
    }
    if (keyIsDown(DOWN_ARROW)) {
        yMinhaRaquete += 10;
    }
}

function colisaoMinhaRaquete(){
  if(xBolinha-raio < xMinhaRaquete + comprimentoRaquete &&         yBolinha-raio < yMinhaRaquete + alturaRaquete &&                 yBolinha+raio > yMinhaRaquete){
    velocidadeXDaBolinha *= -1
  }
}

function colisaoMinhaRaqueteBiblioteca(x, y){
  colidiu = collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio);
  if (colidiu){
    velocidadeXDaBolinha *= -1
    raquetada.play()
  }
}

function movimentoRaqueteOponente(){
  velocidadeYOponente = yBolinha -yRaqueteOponente - comprimentoRaquete / 2 - 30;
  yRaqueteOponente += velocidadeYOponente + chanceDeErrar
  calculaChanceDeErrar()
}

function colisaoRaqueteOponenteBiblioteca(x, y){
  colidiu = collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio);
  if (colidiu){
    velocidadeXDaBolinha *= -1
    raquetada.play()
}
}

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(pontosOponente, 470, 26);
}

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

function calculaChanceDeErrar() {
  if (pontosOponente >= meusPontos) {
    chanceDeErrar += 1
    if (chanceDeErrar >= 39){
    chanceDeErrar = 40
    }
  } else {
    chanceDeErrar -= 1
    if (chanceDeErrar <= 35){
    chanceDeErrar = 35
    }
  }
}
1 resposta

Fala, Lucas! Tudo bem contigo?

Desculpa a demora em dar um retorno

Vi que faltou adicionar dois parâmetros nas funções colisaoMinhaRaqueteBiblioteca() e colisaoRaqueteOponenteBiblioteca() que estão dentro de Draw;

Verifique esses pontos e nos dê um retorno!

Um abraço