2
respostas

[Dúvida] Não entendi o algoritmo para o movimento da raquete inimiga!

Meu código funciona! só não consegui entender o pq desse algoritmo:

function movimentarRaqueteOponente(){
  velocidadeYOponente = yBola - yRaqueteOponente- widthRaquete/2-30;       // Não compreendi esse!!!! 

  yRaqueteOponente += velocidadeYOponente;
}

só queria entender como que essa linha de código faz a raquete seguir a bolinha! não seria só igualar o velocidadeYOponente = yBola; ?

2 respostas

oi Amanda!! Se fosse só igualar o "velocidadeYOponente = yBola; ?", você nunca marcaria um ponto.

Vc está a falar do eixo y, e o comprimento neste caso é a altura da raquete. Perceba, que durante a aula, o instrutor, usa o braço como exemplo, falando do comprimento!! E divide por 2 e ainda subtrai 30 !!!!!! A largura é que é 10. Se a raquete tem 90, vc divide por 2 = 45. Então 45 - 30 = 15. Módulo 04 aula01.

Então 15 é a área em que a bolinha vai fazer colisão com a raquete, o que sobra de yRaquete para colisão. Esta matemática, foi feita para que o oponente cometa erros, por isso a bolinha bate bem no canto da raquete dele. Então, mexendo na velocidade da bolinha, vc consegue pontuar. Como vc pode observar no jogo o yRaqueteOponente segue o yBolinha, se a bolinha desce a raquete desce, e vice-versa. Imagine a raquete atuando 100% em relação a bolinha, nunca iriamos fazer pontos no oponente! Por isso, foi criado essa digamos "defasagem", meio que uma maneira de "burlar" o acompanhamento da raquete com a bolinha, para que possamos fazer pontos. Essa é a minha percepção, e até gostava de ver outras.

Espero ter ajudado. Bons estudos!!!

Oi Ramon!! Obg por responder, entendi que essa conta é pra criar um delay e o usuário conseguir marcar um ponto, mas, a não ser que meu código esteja errado é impossível ele marcar ponto. segue meu código: https://editor.p5js.org/amandaespindola/sketches/KhJL13Zj8P.

Já vi algumas pessoas aq no fórum comentando que não conseguem fazer ele errar, já tentei de tudo, inclusive a sugestão do professor (módulo 5 ep 7) mas simplesmente não funciona! Desde já obrigada por me ajudar!! entendi o pq da conta agora! :)