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

[Dúvida] Por que a raquete do oponente não está centralizada?

Por que depois de criar uma função movimentaRaqueteDoOponente, a raquete do oponente não fica centralizada?

Segue link do vídeo para ilustrar a minha dúvida: https://youtu.be/z_i1SXC60jk

2 respostas
solução!

Oi, Matheus! Tudo bem?

Como o yBolinha dentro da função movimentaBolinha() está comentado, não será atribuído um novo valor em loop à essa variável, dessa maneira, seu valor inicial permanecerá constante, ou seja, yBolinha = 200.

Dessa forma, yRaqueteDoOponente = 150 apenas no intervalo de tempo inicial (que é extremamente rápido, mas podemos notar com atenção), após isso, o valor que de yRaqueteDoOponente será definido pela função movimentaRaqueteOponente(), que corresponde ao código abaixo:

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteDoOponente - hRaquete / 2 - 30;
  yRaqueteDoOponente += velocidadeYOponente
}

Nesse código podemos notar que yRaqueteDoOponente é igual ao seu valor mais o valor de velocidadeYOponente. Podemos então observar que o valor de velocidadeYOponente é 200 - 150 - 90/2 - 30 substituindo as variáveis pelos seus respectivos valores numéricos, que dá -25. Logo, o valor final de yRaqueteDoOponente não é 150 e sim 150 - 25 = 125, por isso a raquete do oponente não está centralizada.

Todavia, para que esse novo valor altere um pouco menos o valor inicial de yRaqueteDoOponente deixo como sugestão a troca de hRaquete por wRaquete, deixando a função movimentaRaqueteOponente() da seguinte maneira:

function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteDoOponente - wRaquete / 2 - 30;
  yRaqueteDoOponente += velocidadeYOponente
}

Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Aaah entendi, obrigado pela explicação!