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?
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?
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!