Oi, Bruna! Tudo bem?
A colisão não está ocorrendo na raquete do oponente pois o código apresenta apenas a função que verifica a colisão da bolinha com a nossa raquete, localizada à esquerda.
Para resolvermos o nosso problema temos duas opções:
- Podemos criar uma função
verificaColisaoRaqueteDireita()
, com base na função verificaColisaoRaquete()
, entretanto, adaptando os seus parâmetros para a raquete do oponente, deixando-a, então, da seguinte maneira:
function verificaColisaoRaqueteDireita(){
if (xBolinha + raio > xRaqueteDireita
&& yBolinha - raio < yRaqueteDireita + hRaqueteAltura && yBolinha + raio > yRaqueteDireita){
velocidadeXBolinha *= -1;
}
}
Por fim, declarando-a dentro da função draw, deixando-a da seguinte forma:
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();
mostraraquete(xRaquete, yRaquete);
movimentoRaqueteEsquerda();
verificaColisaoRaquete();
mostraraquete(xRaqueteDireita, yRaqueteDireita);
movimentaRaqueteDireita();
verificaColisaoRaqueteDireita();
}
2 . Entretanto, temos também como opção aplicarmos a solução apresentada ao decorrer do curso, adicionando a biblioteca p5.collide2d.js
, e aplicando a função:
function verificaColisaoRaquete(x, y) {
colidiu = collideRectCircle(x, y, wRaqueteLargura, hRaqueteAltura, xBolinha, yBolinha, raio);
if (colidiu){
velocidadeXBolinha *= -1;
}
}
E por fim declarando a função para as duas raquetes de acordo com os seus parâmetros, dentro da função draw da seguinte forma:
verificaColisaoRaquete(xRaquete, yRaquete);
verificaColisaoRaquete(xRaqueteDireita, yRaqueteDireita);
Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se a vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓