Olá fiz tudo que é dito e escrito na aula, inclusive baixei o p5.collide2D, mas a bolinha atravessa a raquete!
Olá fiz tudo que é dito e escrito na aula, inclusive baixei o p5.collide2D, mas a bolinha atravessa a raquete!
Oi, José! Tudo certo por aí?
A bolinha está atravessando a raquete, pois na função colisaoMinhaRaqueteBiblioteca()
a variável Colidiu
, que retorna se houve ou não a colisão, está sendo iniciada com letra maiúscula. Contudo, no bloco condicional, ela é chamada com letra minúscula. Por esse motivo, mesmo que a colisão aconteça, o if
não irá reconhecê-la (visto que ele estará verificando uma variável que não existe) e, portanto, a bolinha não terá seu sentido alterado após colidir com a raquete, fazendo com que ela a travesse.
Para solucionar isso, podemos alterar o nome da variável Colidiu
, deixando-a com todas as letras minúsculas, este é um padrão da linguagem Javascript. Abaixo, o código completo da função com a mudança:
function colisaoMinhaRaqueteBiblioteca() {
colidiu =
collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
if (colidiu){
velocidadexBolinha *= -1;
}
}
Desse modo, a bolinha volta a se colidir normalmente com a raquete!
Caso queira saber um pouco mais sobre a mudança de letra maiúscula para minúscula e sobre convenções de nomenclatura na programação, deixo como sugestão a leitura de um artigo super interessante da Alura:
Espero ter ajudado, José! Caso surja outra dúvida, fico à disposição para ajudá-lo no que for preciso!
Grande abraço e até mais.