Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Porque não if(xBolinha + raio ....) e porque if(xBolinha - raio ....)

Não entendi o porquê de usar o sinal de "menos" ao invés de "mais" nessa parte do código abaixo. Não compreendi muito bem o porquê disso. A ideia não seria somar o raio ao invés de diminuir?

if (xBolinha - raio <...)

Porque não assim?

if (xBolinha + raio <...)

Aqui o código completo

function verificaColisaoRaquete() {
    if (xBolinha - raio < xRaquete + raqueteComprimento) {
        velocidadeXBolinha *= -1;
    }
}
3 respostas

Essa parte já entendi mais ou menos. Mais se alguém ainda quiser explicar um pouco mais, fico grato!

solução!

Fala, Marcos! Espero que esteja bem!

Bóra lá!!!

Vamos fazer alguns testes:

Primeiro vamos comentar a movimentação Y da bolinha para deixarmos somente a movimentação horizontal

function movimentaBolinha(){

    xBolinha += velocidadeXBolinha;
    // yBolinha += velocidadeYBolinha;
}

Vemos que na função que citou a variável xBolinha está sendo subtraído pelo valor do raio e quem é esse raio? O raio guarda a divisão entre o diâmetro (13 ou outro valor que colocou) por 2, mas vou considerar 13

Dessa forma, vamos ao que ocorre

No momento em que xBolinha e xRaquete se encontram, ambos terão o mesmo valor, logo, se subtrairmos o raio de xBolinha terá o valor menor que XRaquete. Isso acontecendo inverterá a direção.

Se somarmos o raio, a colisão nunca acontecerá, assim, a bolinha seguirá sempre em frente, pois, xBolinha (10) + raio (6.5) = 16.5 (por exemplo) nunca será menor que xRaquete (10, por exemplo). Essa bolinha nunca receberá o retorno

Fez sentido, Marcos!

Espero ter ajudado

Um abraço e bons estudos

Fez sentido Cássio! Muito Obrigado!