1
resposta

Exercício Concluído

Dando uma olhada no código, comentei a primeira função verificaColisaoRaquete que aparece no código e o jogo aconteceu normalmente porque já existe uma outra função com o mesmo nome e que pega o x e y informados na função draw. Está certo?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá, Silvio! Como você está?

Você tem total razão, o instrutor aplica duas lógicas e constrói duas funções para a colisão da raquete. Uma com o consumo da biblioteca coliide2d e outra sem. Por isso quando comentamos uma das funções, nós consumimos a outra e o funcionamento do código não é comprometido

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  movimentaMinhaRaquete();
  //verificaColisaoRaquete(); comentando uma função
  verificaColisaoRaquete(xRaquete, yRaquete); //aqui consumimos a função que consome a biblioteca
  mostraRaquete(xRaqueteOponente, yRaqueteOponente);
  movimentaRaqueteOponente();
  verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
  incluiPlacar();
  marcaPonto();
}

E aqui temos as funções, a primeira com a lógica sem a biblioteca:

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

E a segunda consumindo a biblioteca collide2d, onde precisamos passar os parâmetros


function verificaColisaoRaquete(x, y){
  colidiu = collideRectCircle(x, y,raqueteComprimento,raqueteAltura,
xBolinha,yBolinha,raio);
  if (colidiu){
    velocidadeXBolinha *= -1;
    raquetada.play();
  }
}

Espero que as informações tenham ajudado você, fico à disposição!

Um abraço e bons estudos!