1
resposta

Bolinha nao colide com raquete (ela colide no vazio antes e volta)

Tudo vai bem ate eu inserir esse código para verificar se a bolinha bate na primeira raquete( ainda nao criei a segunda) Antes disso, a bolinha atravessava a raquete e batia na parede como esperado. Mas assim que crio essa função( mesmo copiando exatamente o codigo fornecido, a bolinha bate na borda, volta, e ao inves de bater na raquete, ela bate centimetros antes, no vazio e volta.

será bug?ou alguma falha na escrita do código.

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

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


//variaveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteAltura = 10;
let raqueteComprimento = 90;



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

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

}

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, raqueteAltura, raqueteComprimento);
}

function movimentaMinhaRaquete() {
  if (keyIsDown(UP_ARROW)) {
    yRaquete -= 10;
  }
  if (keyIsDown(DOWN_ARROW)) {
    yRaquete += 10;
  }
}
O GODIGO EM QUESTÃO
function verificaColisaoRaquete()
{
  if(xBolinha < xRaquete + raqueteComprimento){
    velocidadexBolinha *= -1;

  }
}

insira seu código aqui

1 resposta

Olá, Matheus! Tudo bem contigo?

Faltam alguns outros parâmetros na função para que a bolinha possa atingir o lado esquerdo

Veja abaixo

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

  }
}

Faça esse teste e nos dê um retorno, Matheus!

Um abraço