Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Modificações no jogo: Limites para as raquetes e dificuldade variável

Boa tarde, pessoal! Esse é meu primeiro post aqui no fórum! (aee! =D)

Fiz algumas modificações que achei pertinentes no código e fiquei com uma dúvida.

Vamos as modificações: adicionei as raquetes uma limitação para elas não saírem da tela. Isso usando if's na função que movimenta elas, tanto na do jogador quando do oponente. Ficando:

function movimentaRaquete(){
  if (keyIsDown(UP_ARROW)){
    yRaquete -= 10;
  }

  if (keyIsDown(DOWN_ARROW)){
    yRaquete += 10;
  }
  if (yRaquete < 3){
    yRaquete = 3;
  }
  if (yRaquete > 307){
    yRaquete = 307;
  }
}

Modificando apenas o nome do y (no caso, yRaqueteOponente) na função de movimentação do oponente.

Outra modificação que fiz foi criar um número aleatório para a margem de erro do oponente, que varia sempre que o oponente marca um ponto. Sendo assim:

//chance de erro do oponente
let erroAleatorio;

//usando math para criar um número eleatório dentro dos parâmetros do jogo
erroAleatorio = Math.floor(Math.random() * 95 + (-20));

//adicionei novamente o math dentro no marcaPonto, acredito que haja uma forma melhor de fazer isso...
function marcaPonto(){
  if (xBolinha > 590){
    meusPontos += 1;
    ponto.play();
  }
  if (xBolinha < 10){
    pontosOponente += 1;
    ponto.play();
    erroAleatorio = Math.floor(Math.random() * 95 + (-20));
  }

Eu gostaria que esse número ficasse sendo gerado automaticamente para dar mais vida para o oponente, mas não consegui realizar. Ainda que, da forma que está, ele simplesmente muda de posição de forma abrupta e sendo impossível ganhar em alguns momentos.

Minha dúvida é: não seria mais interessante se conseguissemos mudar a velocidade em que o oponente se movimenta, para dar a ilusão de que ele realmente não consegue alcançar a bolinha?

Segue o jogo! https://editor.p5js.org/ThomasNunes/full/01D6MlFJF

1 resposta
solução!

Oi oi, Thomas! Como você está? Bem - vindo a Alura e ao Fórum! Aeeeew \o/

WOW, suas implementações ficaram excelentes! Parabéns pela criatividade e também execução da ideia!

Com certeza a restrição de espaço em que a raquete caminha pela tela deixa o jogo com uma cara mais profissional, ficou excelente!

Sobre a aleatoriedade do movimento, um aluno aqui da Alura sentiu a mesma necessidade e implementamos o math.random de forma um pouco diferente, vou enviar o link do tópico: Link para o tópico erra ou acerta a bolinha - aleatoriedade do oponente

Acho a ideia de alterar a velocidade da raquete sensacional, pois assim o jogo fica mais fluído!

Parabéns novamente, você está no caminho certo para se tornar um grande desenvolvedor!

Continue compartilhando suas dúvidas, soluções e projetos com a gente!

Um super abraço e até breve!!

Bons estudos!