Oi, Alberto! Tudo certo por aí?
Logo de início, peço desculpas pela demora em retornar.
Ao executar o jogo, percebemos que há uma mensagem no console do P5.js indicando que a função colisao
não foi definida, gerando o erro do programa.
Esse problema está acontecendo, pois a função colisao()
encontra-se dentro da função verificaColisaoRaquete()
, observe:
function verificaColisaoRaquete(){
if (xBolinha - raio < xRaquete + raqueteComprimento &&
yBolinha - raio < yRaquete + raqueteAltura &&
yBolinha + raio > yRaquete){
velocidadeXBolinha *= -1;
}
function colisao(){
hit = collideRectCircle(xRaquete,yRaquete, raqueteComprimento,raqueteAltura,xBolinha,yBolinha,raio);
if (hit){
velocidadeXBolinha *= -1;
}
}
}
Para que o Javascript a interprete, precisaremos retirá-la de dentro de verificaColisaoRaquete()
, dessa maneira:
function verificaColisaoRaquete(){
if (xBolinha - raio < xRaquete + raqueteComprimento &&
yBolinha - raio < yRaquete + raqueteAltura &&
yBolinha + raio > yRaquete){
velocidadeXBolinha *= -1;
}
}
function colisao(){
hit = collideRectCircle(xRaquete,yRaquete, raqueteComprimento,raqueteAltura,xBolinha,yBolinha,raio);
if (hit){
velocidadeXBolinha *= -1;
}
}
Com essa alteração, as duas funções estarão na mesma hierarquia e, consequentemente, colisao()
passará a ser reconhecida e o jogo voltará a funcionar!
Alberto, espero tê-lo ajudado. Fico à disposição para ajudá-lo caso surjam outras dúvidas ao longo dos seus estudos!
Forte abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.