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

Dúvida na function movimentaRaqueteOponente

function movimentaRaqueteOponente() { velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete / 2 - 30; yRaqueteOponente += velocidadeYOponente.

Eu não entendi a subtração do yRaqueteOponente

3 respostas
solução!

Olá, Stephanie, esses valores são "aleatórios", utilizados para tentar criar uma diferença entre a posição y da bolinha e a posição y da raquete e, assim, aumentar a probabilidade do jogador marcar pontos (fazendo com que a bolinha possa também tocar a borda e não a raquete do oponente sempre).

Poderiam ter sido colocados quaisquer outros valores. Se você quiser, pode testar.

Mas, para que se estabelecesse uma lógica e um critério na escolha dos valores utilizados, o instrutor aproveitou as variáveis já existentes no código, relacionados à posição da bolinha e da raquete e, assim, gerar um valor que definisse uma velocidade para a raquete do oponente se movimentar.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter contribuído. Bons estudos!

Obrigada Leila!

Então,

Com uma função muito mais simples consegui fazer o que o professor fez no vídeo:

function movimentaOponenteRaquete(){
  yOponenteRaquete = yBolinha - alturaRaquete/2;
}

Com esse código a raquete seguia a bolinha.

Eu senti que o - 30 do código do professor era mais para dar um desconto de onde a bolinha iria bater na raquete, pq no final a raquete segue exatamente a posição do y da bolinha.

Eu criei um random para por no lugar do -30 para quando gerasse um número específico o oponente erraria.

let erroOponente = Math.round(Math.random()*170);

function movimentaOponenteRaquete2(){
      yOponenteRaquete = (yBolinha+40)-erro;
}

Consegui fazer com que gerasse um número para determinar se a raquete vai pegar ou não a bolinha.

O ideal seria que a cada jogada fosse gerado um novo valor para a variável erroOponente e assim seria determinado se a raquete ia pegar ou não na bolinha.

O problema é que eu não consegui fazer com que tempos em tempos seja gerado outros valores para a variável erro. Não sei porquê o SetInterval não funcionou no P5 como acontece no Sublime.

Espeto ter ajudado. Sucesso na sua jornada!!