1
resposta

Bolinha continua ultrapassando a raquete e batendo na borda, alguém pode me ajudar a descobrir o que está errado?

//variaveis bolinha
let xBolinha= 300;
let yBolinha= 200;
let diametro= 15;
let raio = diametro/2;

//variaveis velocidade da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;

//variaveis da raquete
let xRaquete= 5;
let yRaquete= 150;
let comprimentoRaquete= 10;
let alturaRaquete= 90;




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

function draw() {
  background(0);
  mostraBolinha();
  movimentodaBolinha();
  bordas();
  desenhaRaquete();
  movimentaRaquete();
  verificaColisaoRaquete();

}


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

function movimentodaBolinha(){
  xBolinha += velocidadexBolinha;
  yBolinha += velocidadeyBolinha;

}

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

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

}

function desenhaRaquete(){
  rect(xRaquete, yRaquete,comprimentoRaquete, alturaRaquete);
}

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

}

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

Olá. Notei que na função verificaColisaoRaquete, ao informar a posiçao y da bolinha, você colocou para verificar na posição xRaquete e deve ser yRaquete

Como você escreveu:
function verificaColisaoRaquete(){
  if(xBolinha- raio< xRaquete + comprimentoRaquete && yBolinha - raio< xRaquete + alturaRaquete && yBolinha + raio > yRaquete){
    velocidadexBolinha *= -1;
  }

Como é:

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

Verifica se agora funciona :)