2
respostas

Não entendi nada dessa função

Alguém poderia me explicar a função abaixo detalhadamente, to tendo problemas para compreender toda a logica por trás dela, agradeço desde ja

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

vamos por partes.velocidadeYOponente, é o quanto vc vai mover a raquete do oponente (por isso que ela é adicionada ao y da raquete mais tarde). Agora, quanto sua raquete tem que se mover? seu objetivo é alinhar o meio da raquete com o meio da bolinha, então vc vai pegar onde está o meio da bolinha e ver a distancia que falta pro yRaqueteOponente (que é o canto superior da raquete), dps disso vc vai descer até a metade da raquete (por isso vc tira metade do comprimento) e o "-30" no final é um erro que foi adicionado para que o oponente não acerte perfeitamente sempre, pra que o computador possa perder também. Se alguma parte não ficou clara, basta perguntar e eu volto aqui pra tentar ajudar

Fala ai Igor, Blz?

Acho que entendi sua dúvida. Fiquei pensando aqui sobre a questão e cheguei a seguinte conclusão, após a fórmula.

velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;
yRaqueteOponente += velocidadeYOponente

No que se refere ao movimento da raquete do Oponente, sabemos que ele praticamente segue onde a bola vai, certo? Assim, vamos situar uma posição, exemplo yBolinha = 200 (meio da tela) no exemplo com height de 400, blz?

E supondo que a raquete oponente deve estar na mesma altura Y, seria 200 também. OK? Assim, teremos 0, que quer dizer, se a raquete Oponente está na mesma coordenada Y, então já estou na localização certa para rebater a bolinha.

Aí, para ser mais exata a raquetada, dividi-se a altura da raquete oponente por 2, para se chegar ao meio da raquete e o - 30 é para dar a chance a nós humanos ganharmos do computador kkkk ..

Veja se faz sentido ai pra você agora? Se sim, marque como Resolvido, e TMJ!

Bons estudos Igor!