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

Bugs no jogo

Olá!

Alguns bugs no meu jogo:

  • minha raquete se movimenta em y além dos limites da borda
  • bolinha fica presa atrás das raquetes e computa vários pontos
  • meu placar contabiliza 3 pontos por vez

https://editor.p5js.org/allynap/sketches/DRCe4yEaW

Alguém mais teve esses problemas??

3 respostas

Tiago, boa noite!

Estou tendo problemas semelhantes:

  • O som da Raquetada toca constantemente, mesmo quando a bolinha nao toca as raquetes;
  • minha raquete se movimenta em y além dos limites da borda;
  • meu placar so contabiliza a pontuação do oponente uma unica vez;
  • As raquetes estão apresentando um diferença entre o afastamento da borda, mesmo recebendo os mesmos valores de sinal trocado;

https://scratch.mit.edu/projects/552710751

solução!

Eae Tiago vamos ver cada um dos erros, um por vez: A respeito da raquete se movimentar em y alem dos limites - você tem que adicionar uma condição, para que quando ele chegar na borda, ele ficar na mesma posição, então criei dois if's, para verificar tanto a parte de cima quanto a de baixo, e inclui esses dois if's na função de movimentaMinhaRaquete() e ficou assim: if (yRaquete == -10) { yRaquete = 0; } if (yRaquete == 330) { yRaquete = 320; }. A respeito da bolinha as vezes ficar presa atrás da raquete, é normal, pois como criamos os componentes e eles não tão perfeitos assim, como a raquete e a bolinha, então acontece esse bug (teríamos que fazer alguns calculos para criar um cenário perfeito, como a posição X da raquete, o diametro da bolinha, etc, mas como não é o objetivo do curso se aprofundar muito no cenário, ficou assim).E o último problema, la na função marcaPonto() você colocou pra marcar o ponto do oponente se o xBolinha < 10. O erro ai acontece porquê quando a bolinha encosta na borda ela marca 1 ponto e retorna, mas quando ela retorna, o XBolinha continua sendo menor do que 10, então ele entra na condição novamente e soma mais um ponto. Então temos que diminuir o valor 10 da condição. Fiz alguns testes e o valor correto seria 7. Então ficariam assim:

if (xBolinha < 7) { pontosOponente += 1; ponto.play(); }

Qualquer dúvida comenta ai.

Matheus, valeu pelas dicas! Consegui acertar a questão dos limites da borda para a minha raquete e, também, a pontuação, que agora computa corretamente apenas 1 ponto!!