1
resposta

Bolinha trava no meio da raquete do oponente

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

//variáveis da velocidade da bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;

//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueteAltura = 90; 

//variáveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let raqueteOponenteComprimento = 10;
let raqueteOponenteAltura = 90; 
let velocidadeYOponente;

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

function draw() {
  background(0);
  mostraBolinha()
 movimentaBolinha()
  verificaColisaoBorda()
  mostraRaquete()
  movimentaRaquete()
  //verificaColisaoRaquete()
  colisaoMinhaRaqueteBiblioteca()
  mostraRaqueteOponente()
  movimentaRaqueteOponente()
  colisaoRaqueteOponenteBiblioteca()
}


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 movimentaRaquete() {
  if (keyIsDown(UP_ARROW)){
  yRaquete -= 10;
  }
  if (keyIsDown(DOWN_ARROW)){
  yRaquete += 10;
  }
}

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

function colisaoMinhaRaqueteBiblioteca() {
    collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
    if (colidiu) {
        velocidadeXBolinha *= -1;
    }
}

function mostraRaqueteOponente(){
rect(xRaqueteOponente,yRaqueteOponente,raqueteOponenteComprimento,raqueteOponenteAltura);
}

function movimentaRaqueteOponente(){
   velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteOponenteComprimento / 2 - 30;
  yRaqueteOponente += velocidadeYOponente;
}

function colisaoRaqueteOponenteBiblioteca() {
    colidiu = collideRectCircle(xRaqueteOponente, yRaqueteOponente, raqueteOponenteComprimento, raqueteOponenteAltura, xBolinha, yBolinha, raio);
    if (colidiu){
        velocidadeXBolinha *= -1;
    }
}
1 resposta
O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. 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