1
resposta

A Colisão está bugada

A bola passa direto pela raquete ao invés de colidir, quando a raquete está abaixo da bola, ela colide com a parede normalmente, mas quando a raquete está acima da bola, a bola volta antes de encostar na parede, código a seguir

//variáveis de localização e tamanho (bola)
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2 ;

//variáveis de velocidade (bola)
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;

//váriaveis de localização e tamanho (Raquete Jogador)
let xRaquete = 5;
let yRaquete = 150;
let CompRaquete = 10;
let AltRaquete = 100;

//variáveis de velocidade (Raquete Jogador)
let velRaquete = 4;

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

function draw() {
  background(0);
  MostraBol();
  MovBol();
  ColidBol();
  Raquete();
  MovRaquete();
}

//função de criação da bola
function MostraBol(){
  circle(xBolinha, yBolinha, diametro);
}

//função de Movimentação da bola
function MovBol(){
  xBolinha += velocidadeXBolinha;
  //yBolinha += velocidadeYBolinha;
}

//função de colisão da bola
function ColidBol(){
  //colisão com a parede
  if (xBolinha + raio> width ||
    xBolinha - raio< 0){
    velocidadeXBolinha *= -1;
  }
  if (yBolinha + raio> height ||
    yBolinha - raio < 0){
    velocidadeYBolinha *= -1;
  }
  //colisão com a raquete do jogador
  if (xBolinha - raio < xRaquete + CompRaquete && yBolinha - raio < yRaquete + AltRaquete && yBolinha + raio < yRaquete){
    velocidadeXBolinha *= -1;
  }
}
//função de criação da raquete
function Raquete(){
  rect(xRaquete,yRaquete,CompRaquete,AltRaquete)
}

//função de movimentação da raquete
function MovRaquete(){
  if (keyIsDown(87)){
      yRaquete -= velRaquete;
  }
  if (keyIsDown(83)){
      yRaquete += velRaquete;}
}
1 resposta

Oi, Thiago

Altere o último sinal para ">"

  if (xBolinha - raio < xRaquete + CompRaquete && yBolinha - raio < yRaquete + AltRaquete && yBolinha + raio > yRaquete){