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

Resolver bug da bolinha presa sem movimentar a bolinha

Ante de tudo, atente-se que algumas variáveis pode estar diferentes das variáveis do seu código, então sugiro que copie apenas o trecho que não possui no seu projeto e não todo o conteúdo. ;)

Declare a variável que avisará quando a bolinha voltará para o jogo

let BolinhaEmJogo = true;

Na função marcaPonto():

  1. Coloque um if que verifica se a bolinha se encontra em jogo. Se ela estiver verifique a sua posição para marcar os pontos;
  2. Caso algum ponto seja marcado, marque que a bolinha se encontra fora do jogo.
  3. Coloque um senão (else) para o if do passo 1;
  4. Com base nos x das raquetes e no comprimento das raquetes marque se a bolinha voltou para o campo de jogo

Dessa forma somente 1 ponto será marcado caso a bolinha passe por trás da raquete

function marcaPonto() {
  if (BolinhaEmJogo) {
    if (xBolinha > 590) {
      meusPontos +=1;
      ponto.play();  
      BolinhaEmJogo = false;
    }
    if (xBolinha < 10) {
      pontosDoOponente += 1;
      ponto.play();    
      BolinhaEmJogo = false;
    }    
  }
  else {
    BolinhaEmJogo = (xBolinha < xRaqueteOponente -comprimentoRaquete ) && (xBolinha > xRaquete + comprimentoRaquete);
   }
}

Caso queira deixar o else mais simplificado pode fazer assim

  else {
    if ((xBolinha < xRaqueteOponente -comprimentoRaquete ) && (xBolinha > xRaquete + comprimentoRaquete)) {
      BolinhaEmJogo = true;
    }
  }

Ou assim

  else 
  if ((xBolinha < xRaqueteOponente -comprimentoRaquete ) && (xBolinha > xRaquete + comprimentoRaquete)) {
    BolinhaEmJogo = true;  
  }

Espero ter ajudado, bom curso a todos

1 resposta
solução!

Oi Leandro, tudo bem com você?

Obrigada por compartilhar essa solução com a comunidade. É muito bom ver todo seu esforço e dedicação, continue assim!

Se surgir dúvidas, estou à disposição.

Abraços e bons estudos!