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

[Dúvida] Bug, nem toda vez que a bola bete no final da tela é computada a pontuação.

Segue o link: https://scratch.mit.edu/projects/789018047

Não consigo identificar qual foi meu erro.

4 respostas

Bom dia Erikclis,

Diminua para 80 o tamanho da bolinha.

Ele não está pontuando pois o "x da bolinha" é o centro dela, como ela está muito grande, a bolinha inverte o sentido do movimento quando sua borda toca na parede, antes que o x da bolinha ultrapasse o limite dos 227 (ou -227).

Fiz isso, a pontuação realmente esta computando agora, mas em certo momento ela travar em um canto e começa a pontuar infinitamente. Tentei alterar os valores de x das raquetes e mesmo assim se manteve, no caso aumentei para que elas ficassem no limite da borda e em certo momento ela pontuava 5x a cada toque na borda do oponente.

solução!

Boa noite Erikclis,

Esse problema da bola ficar presa entre a raquete e o fundo da quadra é bem comum, já vi várias pessoas comentarem aqui no fórum, isso ocorre quando a raquete colide com a parte superior ou inferior da raquete, ficando presa "dentro da raquete" por um tempo, quando isso ocorre ela fica ricocheteando e pontuando mesmo. Para resolver isso, você pode definir uma rotina em que a bolinha seja reposicionada na frente da raquete assim que marcar 1 ponto, dessa forma evita que ela pontue mais de uma vez e também que ela fique presa. Você pode testar colocar dentro do próprio laço de pontuação, assim que marcar um ponto altera o x position. Testa aí e depois dá um feedback aqui!

Matheus, sua ideia foi muito boa, apliquei essa solução ja no JavaScript, veja como ficou : https://editor.p5js.org/erikclisbarbosa/full/HmzDa2fZU