1
resposta

Bolinha atravessando a borda quando entra atrás da raquete.

Quando minha bolinha entra por trás da raquete ela está ultrapassando a borda e saindo do palco. Alguém poderia me explicar qual erro eu cometi no código? Isso passou a acontecer depois que eu criei a função de colisão com a raquete.

//variaveis da bolinha

let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;

//variaveis velocidade da bolinha

let velocidadeXBolinha = 5;
let velocidadeYBolinha = 5;

//variaveis da raquete

let xRaquete = 5
let yRaquete = 200
let larguraRaquete = 10
let alturaRaquete = 90


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

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaBolinha();
  mostraRaquete();
  movimentaMinhaRaquete();
  verificaColisaoRaquete();

}

function mostraRaquete (){
  rect (xRaquete, yRaquete, larguraRaquete, alturaRaquete);

}

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

  if (keyIsDown(DOWN_ARROW)){ 
    yRaquete += 10;
  }
}

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

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

}

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

}

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

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

}
1 resposta

Oi, Eric! Como vai você?

Bom, testei seu código no meu p5.js e estava funcionando normalmente. Também verifiquei seu código e não encontrei problema em relação a lógica ou sintaxe da função da colisão da raquete.

Se você se refere ao caso da bolinha ficar presa entre raquete e borda. Esse é um bug do jogo mesmo, mas seu projeto está funcionando.

Se houver mais dúvidas ou se os problemas persistirem, fico à disposição!

Um abraço e bons estudos!