2
respostas

[Sugestão] Esquema para entender o código da função para movimentar a raqueteOponente

Código da Raquete do Oponente:

// Função para movimentar a raquete do oponente

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

CONSIDERANDO OS VALORES: yBolinha = 200 Posição Y do centro da bola yRaqueteOponente = 155 Posição Y da parte superior esquerda da raquete

*-(raqueteComprimento / 2) – 40 = -(10/2) – 40 => -45 *

Quer dizer que o yRaqueteOponente(155) está 45 acima em relação ao yBolinha(200). Ficando assim o centro da raquete com o centro da bola. PORTANTO O VALOR 40 NÃO É ÚTIL PORQUE O OPONENTE SEMPRE VAI ACERTAR A BOLA NO MEIO DA RAQUETE, E NÃO TERÁ UMA MARGEM DE ERRO. POR ISSO O PROFESSOR COLOCOU O VALOR 30, QUANTO MAIS O VALOR SE DISTANCIAR DE 40, TANTO PARA CIMA QUANTO PARA BAIXO, MAIS DIFÍCIL DO OPONENTE ACERTAR A BOLA.

VAMOS DETALHAR O CÓDIGO: yBolinha – yRaqueteOponente = Aqui só calcula a diferença do eixo y da bolinha do eixo y da raquete do oponente: Considerando que a bola só se movimenta pelo eixo x, para ficar mais fácil de visualizar a movimentação da raquete, por isso foi comentado o código abaixo:

// Movimenta a Bolinha:

function movimentaBolinha(){
    xBolinha += velocidadeXBolinha;
   // yBolinha += velocidadeYBolinha;
}

Partindo desse pressuposto, podemos afirmar que o eixo x da bolinha será sempre 200 (no centro da tela) como pré-definido no código. Vamos colocar valores para ficar mais claro:

yBolinha = 200 (200 é valor de y no centro da bola, significa que o eixo y da bola está no centro da tela visto que a tela tem 400 de altura).

yRaqueteOponente = 155 (155 é valor de y da raquete na tela. A altura da tela tem 400, metade dela seria 200, se colocar a raquete em 200, ela ficaria do centro para baixo, visto que a altura da raquete começa a contar da parte superior esquerda para baixo, então temos que diminuir metade do valor da raquete do centro da tela, que daria 200 – 45 = 155. Assim o centro da raquete está igual ao centro da bolinha)

*VelocidadeYOponente = * yBolinha – yRaqueteOponente = 200 – 155 = 45 – (raqueteComprimento / 2 – 40 = - (10/2) – 40 => -45

45 -45 = 0

yRaqueteOponente(155) += velocidadeYOponente(0*) yRaqueteOponente += 155 + 0 = *155 (Como a velocidade da raquete Oponente é zero, ela não vai se mexer)

desenho para entender

OUTRO EXEMPLO Alterando o valor da raquete para um eixo y diferente de 155: yBolinha = 200 yRaqueteOponente = 225

Nesse caso a raquete vai subir 70. Então a bola vai bater no centro da raquete novamente porque colocamos 40 de margem. Para ter uma margem de erro, temos que colocar um valor abaixo ou acima de 40.

desenho movimento raquete oponente

2 respostas

Muito obrigado me ajudou bastante

Olá, Patrícia, tudo bem?

Fico feliz que tenha praticado os exercícios e compreendido o conteúdo do curso. Além disso, você disponibilizou seu tempo para ajudar colegas aqui no fórum com uma explicação detalhada do movimento da raquete, inclusive com imagens. Isso é incrível!

Obrigada pela gentileza!

Continue praticando os exercícios para assim consolidar seus conhecimentos.

Abraços e bons estudos!