0
respostas

Colisão Oponente Sem Biblioteca, Função movimentaRaqueteOponente

Não consegui compreender por que a função movimentaRaqueteOponente se eu coloco 60 faz com que a bolinha não colida com a raquete oponente nas extremidades mas com o valor 30 ela colide 100% das vezes

//variaveis da bolinã de gorfe
let xBolinha = 375;
let yBolinha = 275;
let diametro = 20;
let raio = diametro / 2;

let velocidadeXBolinha = 2;
let velocidadeYBolinha = 2;

//variaveis raquete
let xRaquete = 5;
let yRaquete = 200;
let alturaRaquete = 10;
let larguraRaquete = 140;

//variaveis raquete oponente
let xRaqueteOponente = 725;
let yRaqueteOponente = 200;
let velocidadeYOponente;

function setup() {
  createCanvas(750, 550);
}

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete();
  moveMinhaRaquete();
  verificaColisaoRaquete(xRaquete, yRaquete);
  mostraRaqueteOponente();
  movimentaRaqueteOponente();
  verificaColisaoRaqueteOponente();
}


//funções bolinã de gorfe
function mostraBolinha(){ 
  circle(xBolinha, yBolinha, 20)}

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;
                                                     }
}

//funções da raquete
function mostraRaquete(){
  rect(xRaquete,yRaquete, alturaRaquete, larguraRaquete)
}

function moveMinhaRaquete(){
  if (keyIsDown (UP_ARROW)){ 
  yRaquete -= 10;
  }
  if (keyIsDown (DOWN_ARROW)){ 
  yRaquete += 10;
  }
}
function verificaColisaoRaquete(x, y){
  if (xBolinha - raio < x + alturaRaquete && yBolinha - raio < y + larguraRaquete && yBolinha + raio > y){ 
    velocidadeXBolinha *=-1;
  }
}
//funções da raquete oponente
function mostraRaqueteOponente(){
  rect(xRaqueteOponente,yRaqueteOponente, alturaRaquete, larguraRaquete)
}
**function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - larguraRaquete / 2 - 30;
  yRaqueteOponente += velocidadeYOponente**

}
function verificaColisaoRaqueteOponente(){
  if (xBolinha + raio > xRaqueteOponente && yBolinha + raio < yRaqueteOponente + larguraRaquete && yBolinha + raio > yRaqueteOponente){ 
    velocidadeXBolinha *=-1;
  }
}