1
resposta

[Dúvida] Dúvida porquê subtrair "yRaqueteOponente"

Bom, a minha dúvida não é a primeira aqui, porém li diversos tópicos diferentes e não consegui entender ainda. eu tenho duas dúvidas. A primeira está diretamente ligada ao fato de não ter entendido o porquê de subtrair o "yRaqueteOponente". De verdade, eu li tudo aqui e não consegui entender o motivo. Peço até que, se possível, me explicar em uma ligação no Discord mesmo.

Minha segunda dúvida também já foi feita aqui, porém as respostas são confusas demais. No vídeo o instrutor usa de "raqueteAltura", porém não faz sentido pois buscamos o eixo y da bolinha. Foi algum erro do instrutor ou é assim mesmo? Se sim, gostaria de uma explicação.

Desde já agradeço.

Meu código: function movimentaRaqueteOp(){ velocidadeYOp = yBolinha - yRaqueteOp - raqueteComprimento / 2 - 30; yRaqueteOp += velocidadeYOp

1 resposta

Olá, Yuri,

Fiz esta aula há poucos dias também. Posso estar enganado, mas o que eu entendi das suas dúvidas é o seguinte:

Quando fizemos o jogo no Scratch vimos que para fazer com que a raquete do oponente se mova sozinha precisamos fazer com que ela siga o Y da bolinha. Porém, apenas seguindo o Y da bolinha a raquete do oponente nunca irá errar, pois os valores serão sempre iguais. Por isso os valores que seguem após "=yBolinha" servem para criar um deslocamento deste seguimento da bolinha, gerando um movimento que pode coincidir com a posição da bolinha ou não.

Subtraímos a posição y da raquete do oponente e sua altura, que é o parâmetro relacionado ao eixo vertical, ou seja, o Y, e dividimos por 2, pois o seguimento da posição y da bolinha considera a posição central da raquete, e como explicado acima o objetivo é criar um deslocamento deste seguimento padrão.

Acho que de forma simplificada seria apenas para evitar que o oponente saiba exatamente onde está a raquete e a bolinha e acabe acertando sempre, você está mudando os valores que a máquina já conhece para tornar de fato uma perseguição da bolinha.

Talvez seja interessante você remover essas informações do seu código e ver como a raquete vai se comportar, talvez ajude na compreensão também.

Espero ter ajudado.

Abraço,