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

A bolinha trava na raquete e as vezes a bolinha não marca ponto!

Link: https://scratch.mit.edu/projects/786179300/

A bolinha, às vezes fica presa na raquete do oponente no canto inferior esquerdo e fica marcando infinitos pontos imposibilindo de continuar o jogo. Também acontece algumas vezes, dependendo de como a bolinha bate na borda ela não marca ponto. Eu já alterei várias vezes o valor da coordenada x, porém se eu diminuo o valor, acontece de alguns casos marcar dois pontos e se aumento o valor, dependendo de como a bolinha bater na borda pode não marcar ponto.

3 respostas
solução!

Oi, Luidi! Tudo bem?

Para resolvermos o nosso problema devemos fazer alguns incrementos no nosso código responsável pela pontuação, deixando-o da seguinte forma:

Captura de tela do Scratch. Fundo branco com dois blocos de código colorido ao centro, um ao lado do outro. O bloco de código localizado à esquerda da imagem possui os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicado, sempre, espere até que posição x menor que -226, toque o som ponto espere 0.5 segundos, se posição x menor que -226 então, adicione 25 a x, senão, adicione 1 a PontosAdversario. O bloco de código localizado à direita da imagem possui os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicado, sempre, espere até que posição x maior que 226, toque o som ponto, espere 0.5 segundos, se posição x maior que 226 então, adicione -25 a x, senão, adicione 1 a meusPontos.

Dessa forma, sempre que a bolinha tocar a parede (quando a posição x da bolinha for menor que -226 ou maior que 226), 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 -226 ou maior que 226, 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.

Espero ter ajudado! Qualquer dúvida basta comunicar!

Um forte abraço e bons estudos!

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

Funcionou, agora quando a bolinha fica presa ela não marca ponto e é liberada logo em seguida. Porém teria alguma forma de arrumar no código impossibilitando que a bolinha fique presa ou é inevitável?

Oi, Luidi! Tudo tranquilo?

Fico feliz que tenha conseguido resolver o problema com a solução acima! Sobre arrumar o código impossibilitando que bolinha fique presa, é inevitável.

Por ser um programa mais simples que utiliza blocos lógicos na construção do código, há limitações que ocorrem pela falta de precisão e exatidão, na execução dos comandos, o que leva a erros como você pontuou. Dessa forma, podemos reverter e minimizar o problema, mas não efetivamente impedir que ele aconteça, por conta das limitações dos blocos lógicos.

Caso este post tenha lhe ajudado, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software