1
resposta

a bolinha so fica na vertical, talvez seja algum erro q passou batido, mas kkkkkkkkkk

//variaveis da bolinha
let xBolinha = 275;
let yBolinha = 200;
let diametro = 20;
let raio = diametro / 2;

//velocidade da bolinha
let xVelocidade = 5;
let yVelocidade = 5;

//variaveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let comprimento = 10;
let altura = 90;

let colidiu = false;

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

function draw() {
  background("black");
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete();
  movimentaMinhaRaquete();
  verificaColisaoRaquete();
}

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

function movimentaBolinha() {
  xBolinha += xVelocidade;
  yBolinha += yVelocidade;
}

function verificaColisaoBorda() {

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

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

function mostraRaquete() {
   rect(xRaquete, yRaquete,comprimento, altura);
 }

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

function verificaColisaoRaquete() {
  colidiu = collideRectCircle(xRaquete, yRaquete, comprimento, altura, xBolinha, yBolinha, raio);
  if(verificaColisaoRaquete){
    xVelocidade *= -1;
  }
}




1 resposta

Fala, Carlos! Tudo bem contigo?

Desculpe a demora em dar um retorno

O problema acontece por não estar chamando a variável colidiu dentro da condição if

if (colidiu) {
        velocidadeXBolinha *= -1;
    }
}

Feito essa correção teremos o código rodando normalmente!

Espero ter ajudado!

Um abraço e bons estudos!!!