Olá tudo bem ? fiz o passo a passo com o professor, porem o time adversário de vez ganhar 1 ponto, ganha 2 ou 3. se a bolinha bate no eixo x de cima ela faz 2 pontos, e no eixo de baixo ela faz 1 ponto
Olá tudo bem ? fiz o passo a passo com o professor, porem o time adversário de vez ganhar 1 ponto, ganha 2 ou 3. se a bolinha bate no eixo x de cima ela faz 2 pontos, e no eixo de baixo ela faz 1 ponto
Olá Bruno! Tudo ótimo, como vai?
O código está no caminho certo, só precisamos fazer algumas alterações!
Para resolvermos o nosso problema centralizamos a bolinha, dessa forma a representação dela na tela do jogo vai ser exata:
O problema da pontuação está atrelado tanto ao tamanho da bolinha quanto à posição na tela em que os pontos começam a contar. Os pontos contam a partir do valor x de 232, ou seja, enquanto a bolinha estiver além dessa posição os pontos continuam a subir, porém, como a bolinha é pequena, o tempo decorrido depois de ultrapassar a coordenada, onde rebate na borda e volta é suficiente para contar vários pontos.
Uma solução que pode ajudar é a de utilizar um código que apenas contabiliza os pontos depois de uma quantidade de tempo:
As alterações consistem na seguinte lógica: sempre que a bolinha tocar a parede (quando a posição x da bolinha for maior que 230 ou menor que 230), o som da pontuação será tocado normalmente, entretanto, o programa esperará 0.5 segundos e irá conferir se a bolinha ainda está depois da coordenada para pontuar.
Caso a posição da bolinha continue menor que -230 ou maior que 230, isso significa que a bolinha está presa, então, será adicionado um valor à posição x para libertá-la. Caso não, adicione-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!