1
resposta

Placar Pong incorreto

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

https://scratch.mit.edu/projects/804494011/editor

1 resposta

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:

Início da transcrição. Imagem de um círculo branco e um ícone de mouse em forma de punho sobre ele, simbolizando que o círculo está sendo centralizado para o centro. É possível visualizar uma cruz azul no centro do círculo e o ícone de um alvo preto sobre ele. Fim da Transcrição.

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.

Início da transcrição. Na tela há um plano cartesiano com 1 retângulo de pé em cada centro das laterais. Em cima do retângulo da direita há uma bolinha preta do tamanho da lateral menor do retângulo. O centro da bolinha é marcado por uma linha vermelha que se segue um pouco acima da bolinha. Acima da linha vermelha, na perpendicular com a linha do plano cartesiano o número duzentos e trinta e dois pode ser visto. Fim da transcrição

Uma solução que pode ajudar é a de utilizar um código que apenas contabiliza os pontos depois de uma quantidade de tempo:

Início da transcrição. Captura de tela do Scratch, em que há um fundo branco e 2 blocos de código com comandos coloridos, um ao lado do outro, de forma que, ao lado esquerdo se encontra um bloco de código com os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, espere até que posição x seja maior que duzentos e trinta, toque o som ponto, espere 0.5 segundos, se posição x maior que duzentos e trinta, adicione menos 10 a x, senão, adicione 1 aos meus pontos. Ao lado direito se encontra um bloco de código com os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, espere até que posição x seja menor que duzentos e trinta, toque o som de ponto, espere 0.5 segundos, se posição x for menor que menos duzentos e trinta, adicione 10 a x, senão, adicione 1 aos pontos do oponente. Fim da  transcrição.

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!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓