1
resposta

A Bola colide entre a borda e a raquete.

Após importar o p5.collide2d.js, a momentos em que a bolinha passa por trás da raquete e rebate com a borda. Gostaria de saber como ajustar esse movimento?

//variaveis Bola
let xBola = 250
let yBola = 200
let diametroBola = 20
let raio = diametroBola /2

//variaveis velocidade Bola
let veloXBola = 6
let veloYBola = 6

//variaveis raquete
let xRaquete = 10;
let yRaquete = 150;
let largRaquete = 10;
let altRaquete = 100;

let colisao = false;


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

function draw() {
  background(0);
  criarBola ();
  movimentoBola();
  colisaoBola();
  criarRaquete();
  movimentoRaquete();
  //colisaoRaqBola();
  colisaoRaqBiblio();
    }

function criarBola(){
  circle (xBola, yBola, diametroBola);
}

function movimentoBola (){
  xBola += veloXBola;
  yBola += veloYBola;
}

function colisaoBola (){
   if (xBola + raio > width || xBola - raio < 0){
    veloXBola *= -1;
  }
  if (yBola + raio > height || yBola - raio < 0){
    veloYBola *= -1;
  }
}

function criarRaquete (){
  rect (xRaquete, yRaquete, largRaquete, altRaquete);
}

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

function colisaoRaqBola (){
  if (xBola - raio < xRaquete + largRaquete && yBola - raio < yRaquete + altRaquete && yBola + raio > yRaquete){
    veloXBola *= -1;
  }
}

function colisaoRaqBiblio(){
  colisao = collideRectCircle(xRaquete, yRaquete, largRaquete, altRaquete, xBola, yBola, raio);
  if (colisao) {
    veloXBola *= -1;
  }
}




1 resposta

Blz Karine ? Já tentou reduzir a distância da variável xRaquete para 5 ? Acredito que o problema possa ser solucionado com essa mudança.

Abraço !