7
respostas

Bug na Pontuação e outros

Li alguns relatos aqui e parece ser um bug comum. Em alguns momentos os pontos não são contabilizados, e, as vezes ocorre um bug com a bolinha e a raquete, onde a bolinha fica quicando rapidamente na parte de trás da raquete e na borda do cenário. O que fiz de errado?

https://scratch.mit.edu/projects/750613575

7 respostas

Oi Fabrício, tudo bem?

Analisei seu código e queria parabenizar você pela dedicação nos seus estudos. Você não fez nada errado, mas para corrigir eventuais bugs como os que você citou podemos usar os seguintes passos:

  • De acordo com o instrutor é importante centralizar a bolinha para evitar bugs, portanto, na aba fantasia verifique se está centralizada nos eixos “x” e “y”.

Captura de tela colorida do jogo Pong no Scratch mostrando a bolinha centralizada nos eixos “x” e “y”.

  • Ainda no ator bolinha, remova o bloco “aponte para a direção * (-1)”. Para acrescentarmos outros blocos, essa é uma das formas de resolver o bug da pontuação infinita e do travamento da bolinha.

Captura de imagem do jogo Pong no Scratch mostrando o bloco aponte para a direção vezes menos abre parênteses menos um fecha parênteses sendo retirado. O aponte para direção direção vezes menos um está destacado em vermelho.

  • Remova também o bloco verde com o operador “ou” e substitua pelo bloco “tocando em raquete oponente”.

Captura de imagem do jogo Pong no Scratch mostrando, quando a bandeira verde que inicia o jogo for clicada, sempre, se tocando em raquete 2 então, volte. O bloco, se tocando em Raquete2 ? então, está destacado em vermelho.

  • Acrescente o bloco “aponte para a direção”, o bloco “número aleatório entre” e coloque os números -30 e -125. Essa opção terá um resultado semelhante ao do professor quando ele coloca o bloco direção * -1, a diferença é que, a bolinha a partir de agora voltará para uma direção aleatória resolvendo o bug da pontuação duplicada e da bolinha ficar presa na raquete.

Captura de imagem do jogo Pong no Scratch mostrando quando a bandeira verde que inicia o jogo for clicada, sempre, se tocando em raquete 2 então, acrescente aponte para a direção e número aleatório entre -30 e -125, este bloco está destacado em vermelho.

  • Repita esse processo para a "minha raquete", alterando os ângulos para 30 e 125.

Captura de imagem do jogo Pong no Scratch mostrando quando a bandeira verde que inicia o jogo for clicada, sempre, tocando em raquete2 então, aponte para a direção, número aleatório entre -30 e -125, toque o som acertar bolinha, se, tocando em raquete então, aponte para direção, número aleatório entre 30 e 125, toque o sim acertar bolinha, volte. O segundo bloco está destacado em vermelho.

  • No ator bolinha acrescente o bloco “aponte para a direção” e então acrescente o bloco “número aleatório entre” 30 e 125. Repita o processo para a contagem dos pontos da "raquete oponente", aponte para a direção, número aleatório entre - 30 e -125.

Captura de imagem do jogo Pong no Scratch mostrando o código de pontuação, acrescentando o bloco aponte para a direção e o bloco número aleatório entre 30 e 125 e o bloco número aleatório -30 e -125. Os valores -224 e 224 estão destacados em vermelho, bem como, os blocos aponte para a direção, número aleatório entre 30 e 125 e aponte para a direção, número aleatório entre -30 e -125, também.

Por fim, nos atores "minha raquete" e "raquete oponente" altere a posição, respectivamente para -230 e 230. Isso fará com que sobre pouco espaço atrás das raqeutes e com isso ajudará com que a bolinha fique presa e marque pontos infinitos.

Captura de tela colorida da área de código do Scratch mostrando dois blocos um em cima do outro na seguinte ordem: "quando a bandeira verde for clicada", "vá para x:-230, y:0".

Captura de tela colorida da área de código do Scratch mostrando dois blocos um em cima do outro na seguinte ordem: "quando a bandeira verde for clicada", "vá para x:230, y:0".

Espero ter ajudado. Caso tenha outras dúvidas, estarei à disposição.

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

Boa tarde,

Acabei chegando a mesma conclusão que você Fabrício. Pesquisei mais no fórum e encontrei uma solução de ajustar a posição da raquete, o tamanho da bola e fazer a bola voltar para posição x,y (0,0) em caso de ponto. O único bug que não consegui ajustar é que as vezes a bolinha toca várias vezes na raquete antes de ir para direção oposta e dá impressão que tem vezes que não conta o ponto quando toca na borda. :-(

https://scratch.mit.edu/projects/759164423

Estava com o mesmo problema que o Fabrício. Alguns bugs, as vezes a bolinha enganchava na raquete e marcava pontos consecutivos, as vezes tocava na borda e não marcava ponto no placar. Segui as instruções do Rodrigo Silva Harder e fiz igual ele comentou aqui no fórum. E deu tudo certo! Busquei seguir o passo a passo tentando entender o que eu estava modificando. Como está sendo meu primeiro contato com programação estou tendo um pouco de dificuldade mas está dando super certo. Percebi que suas intruções basicamente faz com que os elementos desenhados fiquem alinhados no próprio desenho. E a direção da bolinha siga posições diferentes e com uma certa inclinação. Facilitando com que evite a colisão da bolinha com a raquete. Pude perceber também que houve uma busca em otimizar o código. Obrigado pessoal!

https://scratch.mit.edu/projects/758539609

Olá! O meu ainda está com o mesmo erro mesmo seguindo as orientações do Rodrigo. Alguem sabe onde errei? https://scratch.mit.edu/projects/762148561

Oiii pessoal, tudo bem?

Cícero, fico feliz que tenha conseguido seguindo o passo a passo.

Luciléia, para tentar solucionar seu problema, peço que tente seguir o passo a passo do procedimento indicado no link abaixo:

Caso o erro persista peço que crie um novo tópico no fórum para que eu consiga te ajudar diretamente e de forma mais assertiva. Para saber como postar um novo tópico no fórum e aprender a alavancar seus estudos na plataforma Alura ainda mais, recomendo alura+ abaixo:

Ana, vi que você criou um novo tópico e o pessoal aqui do fórum vai te responder no tópico que você criou para conseguir te ajudar mais diretamente.

Grande abraço e bons estudos!

2 semanas e nenhum retorno no novo tópico que criei kkkkkk

Oi Ana, tudo bem?

Peço desculpas pela demora em te dar um retorno!

Vi que o tópico que você criou foi respondido.

Verifique o e-mail com o qual você se cadastrou na plataforma, pois as notificações de interações do fórum sempre aparecem por lá.

Abraços!