1
resposta

raquete ultrapassando a borda do lado esquerdo

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

let velocidadeXBolinha=2;
let velocidadeYBolinha=2;

let xRaquete=5;
let yRaquete=150;
let raqueteComprimento=10;
let raqueteAltura=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, raqueteComprimento, raqueteAltura);
}

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

function verificaColisaoRaquete(){
  if( xBolinha + raio < xRaquete + raqueteComprimento){
  velocidadeXBolinha *= -1;}
}




1 resposta

Olá, Samara! Tudo bem contigo?

Faltou mexermos na função verificaColisaoRaquete.

O código ficará dessa forma

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

Perceba que precisamos fazer algumas validações para que a bolinha ao bater na raquete, volte ;-)

Espero ter ajudado, Samara!

Um abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software