Oi, Mariana! Espero que esteja tudo bem com você!
Bom, é normal atravessar um pouco mesmo porque o instrutor faz o cálculo a partir do diâmetro inteiro da bolinha. Sendo assim, a sensibilidade é um pouco menor e a bolinha precisa "entrar" um pouco mais na borda para que a colisão seja reconhecida. Para resolver, o instrutor também propõe a solução de cálculo através do raio da bolinha, que é uma parte um pouco menor dela e a sensibilidade irá aumentar. Vou enviar o código para você visualizar melhor:
let xBolinha = 300
let yBolinha = 200
let diametro = 15
let raio = diametro/2
let velocidadexBolinha = 5
let velocidadeyBolinha = 5
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
circle(xBolinha,yBolinha,diametro);
xBolinha += velocidadexBolinha;
yBolinha += velocidadeyBolinha;
if (xBolinha + raio > width || xBolinha - raio < 0){
velocidadexBolinha *= -1;
}
if (yBolinha + raio > height || yBolinha - raio < 0){
velocidadeyBolinha *= -1;
}
}
Essa lógica pode ser encontrada nesta aula: https://cursos.alura.com.br/course/pong-javascript/task/56092
Espero que as informações tenham ajudado!
Um forte abraço, fico à disposição e bons estudos!!!