1
resposta

Estou definindo uma direção para a bolinha?

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...
1 resposta

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?

  • raio = área de sensibilidade da bolinha
  • xbolinha = movimentação da bolinha na horizontal
  • ybolinha = movimentação da bolinha na vertical
  • 0 = valor limite da área da tela
  • || = operador lógico que significa OU

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 maiorque 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!