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

[Dúvida] Por que se subtrai o yRaqueteOponente na função de movimentação

Porque é necessário subtrair o yRaqueteOponente na função de movimentação da Raquete, se o objetivo da movimentação aqui é acompanhar o eixo y da bolinha não posso dizer que:

function movimentaRaqueteOponente(){
  yRaqueteOponente = yBolinha - hRaquete /2 
}

ao invés de utilzar a função completa:

function movimentaRaqueteOponente(){
  velocidadeyOponente = yBolinha - yRaqueteOponente - hRaquete /2 
 yRaqueteOponente += velocidadeyOponente;
 }

outra questão é a utilização do "+=" o que está querendo significar nesta função?

3 respostas
solução!

Oi Rian, o que acontece na subtração é que o y da raquete ele sempre está no mesmo lugar, na parte de cima da raquete, vc subtrai a altura da raquete para que o Y da raquete que está na parte superior, passe para a parte inferior da raquete. (aqui vc tem que abrir a mente rss) Para que assim aconteça a colisão, já que o Y só está na parte superior, como ocorrerá colisão embaixo se o T está em cima? Tens razão qd diz que o objetivo da movimentação é acompanhar a bolinha, mas se vc não fizer essa divisão e subtração, nunca vc marcara ponto no oponente. Essa operação matemática é para "burlar" as regras e podermos marcar ponto, senão o oponente nunca irá errar!

Com relação aos operadores: x += y; quer dizer que o x vai somar com o y. Logo x += y é igual a x = x + y ; Veja mais neste link: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Expressions_and_operators

Caso fique dúvidas, poste novamente, que tentarei melhorar. Bons estudos!!

Fala Romeu tudo bem? Eu tbm fiquei com dor de cabeça com isso aí, eu entendi a questão de subtrair a altura para que seja considerada a raquete inteira já que o eixo está na ponta, o que não faz sentido pra mim é que no código (velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 -30) é especificado yRaqueteOponente (a posição da raquete no eixo y) e não a variável "raqueteAltura". Faria muito mais sentido pra mim subtrair a altura mesmo, como vc flw; mas é subtraído a posição da raquete no eixo. Então segundo minha linha de pensamento e a sua ; o certo seria identificar a posição da raquete no eixo, subtraír a altura para assim considerar a raquete por inteira e dividir a mesma altura por dois pra fazer a bolinha bater sempre no meio.

Oi Izaias, blz?!! Se estou seguindo seu raciocínio, veja que o instrutor usa o gesto referindo-se ao comprimento da raquete, porém, sabemos que ele está a falar da altura da raquete, que tem 90. Perceba que não poderíamos dividir 10 que é a largura da raquete por 2 e ainda subtrairmos 30. Acho que ele se equivocou, porque no código(primeira imagem) ele colocou a altura com 90, então, acho que ali na função, deveria ser altura da raquete e não comprimento. Mas sim, é um bocado confuso, espero que eles numa futura atualização possam melhorar isso. Bons estudos!!