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

[Dúvida] Função "marcaPonto" - Dúvida

A partir dos 6'47" da aula, o Guilherme estabelece os critérios para que sejam computados os pontos. Não entendi porque a bolinha não precisa tocar na parede para ser ponto. Porque 10 e 590 ao invés de 0 e 600? Obrigado.

5 respostas

Vamos ver se consigo lhe ajudar...

Na lógica utilizada por ele, a partir do momento em que a bolinha não bate na raquete o ponto será inevitável. Usando esse raciocínio, basta a borda da bolinha ultrapassar a raquete que inevitavelmente será ponto.

Agora, como essa é a visão dele, vc pode mudar e colocar como propôs em sua pergunta. Lembre-se apenas que precisamos sempre compensar o raio da bolinha, porque não fazendo ela irá "entrar" pela metade na borda da tela.

Excelente, Bruno! Muito obrigado.

Para mim, faz sentido o que você explicou. A partir do momento em que a bolinha ultrapassa o limite da raquete ("...não bate na raquete...") o ponto será inevitável. Eu não tinha pensado dessa forma (acho que, pela minha pergunta, deu para perceber, né!).

Mais uma vez, obrigado!

Tive o mesmo pensamento do Sergio.

Até tentei colocar a marcação de pontos para o toque na borda utilizando a lógica da função de verificação de toque na borda, mas daí desisti e coloquei bem parecido com o tutorial, só deixei o mais próximo possível da borda.

function marcarPonto(){
  if (xBolinha + raio > width -1) {
    meusPontos += 1;
  }

  if (xBolinha - raio < 1) {
    pontosOponente +=1;
  }
}

Blz, Bryan!

Penso que o esclarecimento do Bruno Tavares resolveu a nossa dúvida.

Obrigado e vamos em frente!

solução!

Olá!! Por que 10 e 590? Simplesmente porque os pontos x da minha raquete = 10 E o ponto x da raquete oponente = 590.

Quando o ponto x da bolinha é menor que o ponto x da minha raquete , acontece o ponto. Quando o ponto x da bolinha é maior que o ponto x da raquete do oponente, acontece o ponto. No lado da minha raquete, a mesma soma se com sua largura, porque o ponto x, fica a esquerda da raquete. Assim "transferimos" o ponto x da raquete para o seu outro lado, o lado em que a bolinha tem contado. No lado do oponente, não se soma com a largura, porque como eu disse antes, o ponto x da raquete fica a esquerda, então a face esquerda da raquete já esta exposta, diferente da minha raquete que está "colada na borda". Se fosse simplesmente a bolinha ultrapassar a raquete para fazer pontos, ninguém teria problemas com pontuação. Um exemplo bom, seria vc deixar de somar a largura da raquete com o x na minhaRaquete, quando aconteceria o ponto? ou quando iria tocar o som da raquetada na colisão? Sabendo que o x da raquete está do outro lado da raquete? A bolinha ultrapassaria a raquete, mas faria ponto? São coordenadas que se cruzam, e neste momento acontece a ação. Enfim, tudo se resume em onde est o "X" da questão! rss Mas a discussão é boa!! Bons estudos!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software