1
resposta

oponente não erra

fiz o código no sublime então ficou bem diferente do instrutor, deu tudo certo só não consigo fazer o oponente errar.

colei o código aqui e quando clico em editar ele aparece, mas para o público não está aparecendo, pq será?

1 resposta

O professor colocou um erro de acordo com a diferença no placar, mas queria tentar algo mais justo, de tipo, uma hora você marcar ponto se ficar acentanto sempre. Então eu fiz o sistema usando um desvio aleatório, que pode ir aumentando de acordo com o número de raquetadas (ou seja, quanto mais prolongar, maior a chance do oponente cometer um erro). Primeiro eu fiz uma variável (let) para contar as colisões. Depois uma desvio (let) para gerar um número aleatório, aumentando o parâmetro de acordo com o aumento das raquetadas/colisões.

function colisaoRaquete(x,y){
  colidiu = collideRectCircle(x, y, eRaquete, aRaquete, xBolinha, yBolinha, raio);
    if (colidiu) {
      velocidadexBolinha *= -1;
      raquetada.play();
      contadorColisao += 1;
      desvio = random(-10,10)*contadorColisao;
    }  
}

Assim, eu adicionei o desvio no movimento do oponente:

function movimentoOponente(){
  velocidadeOponente = yBolinha -yOponente - aRaquete/2;
  yOponente += velocidadeOponente + desvio;
}

E se alguém fizer ponto, o desvio volta a zero:

function marcaPonto(){
  if(xBolinha < 8){
    pontosOponente += 1;
    ponto.play();
    contadorColisao = 0;
  }
  if(xBolinha > 592){
    pontosPJ += 1;
    ponto.play();
    contadorColisao = 0;
  }  
}

*Sobre colar o código e não aparecer, não sei. Eu abri aqui o "inserir bloco de código" q fica no cabeçalho do editor do forum e colei o código desse post.