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

[Dúvida] Preciso de ajuda para encontrar o erro

Logo após colocar a função colisaoMinhaRaqueteBiblioteca()

a bolinha fica ultrapassando a raquete, de vez colidir, porém não aparece nenhum erro de código pra mim, quando comento com //colisaoMinhaRaqueteBiblioteca() ela volta ao normal, fazendo a colisão e retornando.

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


 //velocidade da bolinha 
 let velocidadeXBolinha = 6;
 let velocidadeYBolinha = 6;
 let raio = diametro / 2;

 //variáveis da raquete 

 let xRaquete = 5;
 let yRaquete = 150;
 let raqueteComprimento = 10;
 let raqueteAltura = 90

 let colidiu = false


function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete();
  movimentaMinhaRaquete();
  verificaColisaoRaquete();
  colisaoMinhaRaqueteBiblioteca();
}

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

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

function verificaColisaoBorda() {
  if (xBolinha +raio > width || xBolinha - raio < 0) { 
  velocidadeXBolinha *= -1; }

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

function mostraRaquete() {
  rect(xRaquete, yRaquete, raqueteComprimento, raqueteAltura)
}

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

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

}

function colisaoMinhaRaqueteBiblioteca() {
  colidiu =
  collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
  if (colidiu) { velocidadeXBolinha *= -1; }

}
1 resposta
solução!

Oi, Samanta

Só pode usar uma opção em draw()

  //verificaColisaoRaquete();
  colisaoMinhaRaqueteBiblioteca();

Usando as duas, uma desfaz o que a primeira fez. Ex.:

velocidadeXBolinha = 6;

velocidadeXBolinha *= -1; // -6

velocidadeXBolinha *= -1; // 6

// a bolinha não muda de direção, pois o valor voltar a ser 6