4
respostas

[Bug] A bola fica presa atras da raquete, opponente não erra e recebe mais pontos

Olá, preciso de ajuda,

Fiz o jogo como o professor mostrou, porém, mesmo depois de ler várias alternativas no fórum, não consegui resolver a questão da bolinha ficar presa na raquete e marcar muitos pontos para o oponente, além de que oponente parece que não erra agora com a biblioteca importada. Já faz uns dias que estou presa nesse ponto.

link do Projeto

Bolinha presa na raquete e deslizando apenas nesse eixo vertical

agradeço desde já o auxílio.

4 respostas

olá, eu tive o mesmo problema que você, e o motivo do oponente não esta errando é por que está faltando a porcentagem de erro na função moveOpponentPaddle(),

função com erro:

function moveOpponentPaddle(){
  speedYOpponent =  yBall - yPadOpponent - sizePaddle / 2 - 30;
  yPadOpponent += speedYOpponent;
}

função correta:

function moveOpponentPaddle(){
  speedYOpponent = 0.8 * yBall - yPadOpponent - sizePaddle / 2 - 30;
  yPadOpponent += speedYOpponent;
}

Quanto maior a porcentagem for mais difícil fica do oponente erra e quanto menor mais o oponente erra.

O problema da bolinha presa atrás da raquete eu ainda não consegui encontrar uma solução resolva cem por cento do bug no meu jogo, mas tem algumas soluções aqui no fórum que podem resolver esse bug no seu jogo.

Oi Carlos, bom dia :-D

Muitíssimo obrigada pela ajuda.

Sobre a bolinha, estive olhando a função da biblioteca importada e a que o professor nos ensinou no curso, tem algo haver com a parte de checagem dos pontos que formam as figuras, mas ainda não descobri bem o que é, fiquei até tarde da noite tentando entender a função da biblioteca importada, mas no fim foi só observando a bola em câmera lenta que percebi a diferença das duas visualmente. Usando a função do professor a bolinha não prendeu mais atrás da raquete, mas fica colada nela de alguma forma. Vou continuar olhando o fórum também.

*Gratidão imensa pela sua ajuda. *

Olá, Luciléia, tudo bem?

Eu tive o problema da bolinha entrar por trás da raquete e decidi diminuir o espaçamento entre a "parede" e a raquete, acredito que isso possa resolver o seu problema também, pois estou testando por aqui e por enquanto não tive o problema novamente.

Mudei as informações diretamente nas variáveis x da Raquete e Raquete do Oponente:

// Variáveis para criação da raquete
let xRaquete = 2; //Alterado de 5 para 2

// Variáveis para criação da raquete do oponente
let xRaqueteOponente = 588; //Alterado de 585 para 588

Poderia testar se resolve o seu problema também?

Obrigado, Wiliam Camargo.

voce pode aumentar a chance de erro do oponente tambem alterando o valor do final da "velocidadeYOponente" exemplo do gabarito:

function movimentaRaqueteOponente (){
  velocidadeYOponente = yBolinha - yRaqueteDoOponente - raqueteComprimento / 2 - 70;
  yRaqueteDoOponente += velocidadeYOponente;
}

exemplo alterado:

function movimentaRaqueteOponente (){
  velocidadeYOponente = yBolinha - yRaqueteDoOponente - raqueteComprimento / 2 - 90;
  yRaqueteDoOponente += velocidadeYOponente;
}