1
resposta

estou com problema na colisão e na aceleração da bolinha ela bate e fica mais rapida tentei encontra o erro mas não achei

// bolinha
let ybolinha = 200;
let xbolinha = 300;
let diametro = 22;
let raio = diametro / 2;

// velocidade
let velocidadebx = 3;
let velocidadeby = 3;

//raquete
let xraquete = 7
let yraquete = 150
let larguraraq = 10
let alturaraq = 90

//raquete oponente
let xinimigo = 585
let yinimigo = 150
let veloinimigoy;

let colidir = false;

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

function draw() {
  background(0);
 MostraBolinha();
 MoverBolinha();
 VerificaColisão();
  raquete(xraquete,yraquete);
  raquete(xinimigo,yinimigo);
  movimentaraquete();
  colisaoraquete(xraquete,yraquete);
  colisaoraquete(xinimigo,yinimigo);
movimentainimigo();}

function MostraBolinha(){circle(xbolinha,ybolinha,diametro);
                      }

function MoverBolinha(){
  xbolinha += velocidadebx ;
  ybolinha += velocidadeby;
  }

function VerificaColisão(){
  if (xbolinha + raio > width || xbolinha - raio < 0 ){
    velocidadebx *= -1;
  }
  if (ybolinha + raio > height || ybolinha - raio < 0) {
    velocidadeby  *= -1;
  } 
}

function raquete(x,y) 
{rect(x,y,larguraraq,alturaraq
     ); }

function movimentaraquete(){
  if(keyIsDown(UP_ARROW)){yraquete -=10;}
  if(keyIsDown(DOWN_ARROW)){yraquete +=10;}
} 

function colisaoraquete(x,y){
  colidir = collideRectCircle(x, y, larguraraq, alturaraq, xbolinha, ybolinha, raio);
 if (colidir){velocidadeby  *= -1.2;}
}

function movimentainimigo(){
  veloinimigoy = ybolinha - yinimigo - alturaraq / 2 - 30;
  yinimigo += veloinimigoy

}
1 resposta

Fala, Guilherme! Tudo bem contigo?

Desculpe a demora em dar um retorno

Na função colisaoraquete faça o teste retirando o ".2" no final.

function colisaoraquete(x,y){
  colidir = collideRectCircle(x, y, larguraraq, alturaraq, xbolinha, ybolinha, raio);
 if (colidir){velocidadeby  *= -1.2;}
}

Acredito que conseguiremos rodar!

Com dica: utilize o método camelCase, pois é uma boa prática e torna a leitura mais legível, como por exemplo: colisaoRaquete

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

Um abraço