if(xBolinha + raio > width || xBolinha - raio < 0 || yBolinha + raio > height || yBolinha - raio < 0 ) { xVelocidade *= -1; yVelocidade *= -1; }
O que se ocorre nesse evento? Porque fica batendo em duas quinas especificas...
if(xBolinha + raio > width || xBolinha - raio < 0 || yBolinha + raio > height || yBolinha - raio < 0 ) { xVelocidade *= -1; yVelocidade *= -1; }
O que se ocorre nesse evento? Porque fica batendo em duas quinas especificas...
Olá, Camila! Como vai?
Desculpe a demora em responder você!
Essa estrutura condicional impõe quatro condições diferentes que realizam o efeito de colisão da bolinha com a borda. Vamos ler o código juntas?
Se as condições abaixo forem verdadeiras
bolinha no eixo de x + seu raio for maior
que a largura da tela
OU
a bolinha do eixo de x - seu raio for menor
que 0
OU
a bolinha no eixo de y + seu raio for maior
que altura
OU
a bolinha no eixo de y - seu raio for menor
que 0
Então faça
velocidade da bolinha no eixo x multiplicada por ela mesma - 1 (ou seja, inverta a posição)
velocidade da bolinha no eixo de y multiplicada por ela mesma - 1 (inverter a posição)
É por isso que a bolinha volta ao colidir nas bordas, por conta das condições que inserimos
Espero que as informações tenham ajudado você de alguma forma.
Fico à disposição!
Um abraço e bons estudos!