Oi Paulo! Como você está?
Na primeira vez que verificamos a colisão com as bordas, estávamos delimitando o espaço em que a bolinha poderia se mover. Antes dessa função, a bolinha se moveria infinitamente em uma mesma direção, tendo seu x e y cada vez maiores. Por isso na função verificaColisaoBorda() os parâmetros utilizados são width e height, que são parâmetros embutidos no P5.JS e que dizem respeito ao tamanho que definimos na função setup() . Vamos relembrá-la:
function setup() {
createCanvas(600, 400);
Logo, width corresponde ao x da tela, e height ao y da tela.
function verificaColisaoBorda() {
if (xBolinha + raio > width || xBolinha - raio < 0) {
velocidadeXBolinha *= -1;
}
if (yBolinha + raio > height || yBolinha - raio < 0) {
velocidadeYBolinha *= -1;
}
}
Aqui, se a posição da bolinha for maior ou menor que o tamanho da tela, a velocidade será invertida: ao tocar na borda, a bolinha muda de direção.
Quando criamos a função verificaColisaoRaquete(), a estratégia foi comparar a posição x da bolinha com a posição x da raquete, como está na primeira condição da função: xBolinha - raio < xRaquete + raqueteComprimento. Subtraímos o raio da bolinha para que ela seja considerada em sua totalidade, já que o x representa o ponto central do objeto, e o mesmo acontece com a adição do comprimento da raquete. Portanto, essa estratégia faz com que a bolinha reconheça todo o espaço equivalente ao tamanho da raquete, na borda esquerda da tela, e a colisão com a borda para de ocorrer.
Para isso entram as próximas duas verificações: yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete, que comparam a posição y (vertical) da bolinha e da raquete, e garantem que a bolinha apenas vai reconhecer a raquete quando o y dos dois objetos forem equivalentes.
Vou deixar aqui um artigo bem legal que fala sobre como funciona o plano cartesiano no P5.JS e que pode ajudar a compreender como funcionam esses cálculos condicionais:
Espero que tenha ficado mais claro, Paulo. Estou a disposição.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!