agora que pus som no jogo percebi que a toda a região acima da raquete é considerada como a raquete Código abaixo https://editor.p5js.org/adrianbarbosa514/sketches/j52jLTARj
agora que pus som no jogo percebi que a toda a região acima da raquete é considerada como a raquete Código abaixo https://editor.p5js.org/adrianbarbosa514/sketches/j52jLTARj
Oi, Adrian! Tudo bem?
O problema ocorre devido às funções responsáveis por verificar a colisão entre a bolinha e a raquete, verificaColisaoRaquete()
e verificaColisaoRaqueteOponente()
.
Inicialmente, podemos notar que na função verificaColisaoRaquete()
estamos limitando a pontuação à região abaixo da localização da raquete, pois tanto a extremidade inferior, quanto a extremidade superior da bolinha estão associadas, dentro da condição do if,
a uma posição menor que a posição da extremidade inferior da raquete.
Somado a isso, na função verificaColisaoRaqueteOponente()
a bolinha deveria ter a localização da sua extremidade superior (xBolinha - raio) menor que a posição da extremidade inferior da raquete (xRaquete + altura), assim como, ter a localização da sua extremidade inferior (xBolinha + raio) maior que a localização da extremidade superior da raquete (xRaquete).
Dessa forma, as nossas funções devem ficar da seguinte maneira:
function verificaColisaoRaquete(){
if (xBolinha - raio < xRaquete + comprimento &&
yBolinha - raio < yRaquete + altura &&
yBolinha + raio > yRaquete){
velocidadeXBolinha *= -1;
raquetada.play();
}
}
function verificaColisaoRaqueteOponente(){
if (xBolinha + raio > xRaqueteOponente &&
yBolinha - raio < yRaqueteOponente + altura &&
yBolinha + raio > yRaqueteOponente){
velocidadeXBolinha *= -1;
raquetada.play();
}
}
Espero ter ajudado na resolução do poblema! Caso tenha restado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!