Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida na equação da raquete do oponente

Na função

function movimentaRaqueteOponente() {
    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;
    yRaqueteOponente += velocidadeYOponente
}

a variável 'raqueteComprimento' é dividida por 2 com a ideia de fazer a bolinha tocar na metade da raquete, mas ela não deveria ser a outra variável 'raqueteAltura', que está relacionada com a altura da raquete ?

1 resposta
solução!

Olá, Pedro! Tudo bem com você?

Sua observação está correta e o próprio instrutor comentou sobre essa questão no tópico Dúvida na função movimentaRaqueteOponente()

Essa parte da lógica aplicada às vezes pode gerar algumas dúvidas mesmo mas é realmente importante que você continue com a iniciativa de procurar entender as funcionalidades. Vamos lá então!

O instrutor utilizou a função movimentaRaqueteOponente() para "automatizar" o movimento da raquete e fazer com que ela "siga" a movimentação da bolinha no eixo y (ou seja, para cima e para baixo). Mas como isso funciona?

Vamos olhar novamente o código:

function movimentaRaqueteOponente() {
    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;
    yRaqueteOponente += velocidadeYOponente
}

Na função estamos indicando que velocidadeYOponente receberá ( = ) a posição Y da bolinha, subtraída ( - ) da posição Y da raquete do oponente e a altura da raquete (você pode substituir por raqueteAltura, sim), para que a bolinha sempre toque em algum ponto da raquete do oponente. Este valor será dividido por 2 (que significa que a bolinha irá tocar na metade da raquete) e, ainda, subtrairemos 30 (- 30) (ou seja, vai tocar em um ponto menor e específico da raquete do oponente).

  • Mas acredito que a dúvida que fica é por qual motivo podemos substituir as variáveis nessa condição, certo?

Podemos substituir a variável pela alturaRaquete porque ambas fazem referência a um valor. No entanto, para que o código faça mais sentido e seja mais legível, fica mais adequado utilizar a variável da raqueteAltura.

Essa lógica acompanha o raciocínio do Scratch e depois haverá outras implementações.

Espero que as informações tenham ajudado você, fico à disposição!

Parabéns mesmo pela observação, isso é um indicativo que você está no caminho certo! :D

Um abraço e bons estudos!!!