Oi, Aline! Tudo bem?
O código está no caminho certo, só precisamos fazer algumas alterações!
Para resolvermos o nosso problema primeiro centralizamos a bolinha, dessa forma a representação dela na tela do jogo vai ser exata:
No código referente a pontuação do jogador, foi utilizado 215 como posição x da tela, porém, esta coordenada é muito distante da borda, sendo assim a bolinha bate na parede e volta antes mesmo do jogo computar um ponto.
Dessa forma, se modificarmos o valor de 215 para um maior, como por exemplo, 222, teremos o resultado esperado da pontuação marcando corretamente.
Esta lógica, segue a mesma para as demais pontuações, como a do inimigo, que nesse caso usará um valor negativo devido a sua posição no plano cartesiano.
Prontinho! Dessa forma solucionamos o problema da contagem de pontos, porém, podemos de outra forma, resolver tanto o problema da pontuação quanto da bolinha presa na raquete seguindo o código:
As alterações consistem na seguinte lógica: sempre que a bolinha tocar a parede (quando a posição x da bolinha for menor que -222 ou maior que 222), o som da pontuação será tocado normalmente, entretanto, o programa esperará 0.5 segundos e irá conferir se a bolinha está presa ou não, para pontuar.
Caso a posição da bolinha continue menor que -222 ou maior que 222, isso significa que a bolinha está presa, então, será adicionado um valor a posição x para libertá-la. Caso não, adiciona-se 1 ponto normalmente.
Dessa forma, o código, então, apenas irá adicionar 1 ponto quando a bolinha sair daquela localização e após o intervalo de 0.5 segundos, evitando possíveis bugs de pontuação.
Segue o projeto resolvido:
Se precisar estamos à disposição, conte conosco!
Um feliz ano novo e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓