1
resposta

Duvida Sobre Bugs

Boa noite!

Terminei a programação do meu jogo no Scratch e coloquei pedi para minha esposa testar o jogo em outro computador, primeiro que bizarramente o som nao funcionava quando estava programando, mas no link que mandei pra ela funcionou perfeitamente, porem em diversos momentos o Jogo buga e ou nao computa os pontos mesmo quando é obvio que nao pegou na raquete e em outras situações aleatorias ele marca ponto mesmo quando a raquete pega em cheio.

Ha algo de errado no meu codigo ou este é um comportamento esperado pela limitação da ferramenta?

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

1 resposta

Olá Gabriel, tudo certo?

Obrigado pela paciência na espera da resposta!

Para resolver o problema de não marcar os pontos para o jogador precisamos observar a parte do código referente aos pontos do jogador:

Captura de tela do scratch, onde tem o código que diz que quando a bandeira for clicaada sempre espere até que a posição horizontal da bolinha seja maior que duzentos e trinta e um para que adicione 1 ponto aos meus pontos e toque o som de ponto

Primeiramente, levaremos em conta um ponto:

  • O que fazemos é escolher uma coordenada a partir da qual a bolinha contará os pontos, ou seja, se os pontos não estão sendo contados, a coordenada está mais próxima do que deveria da borda, fazendo a bolinha contar os pontos pela quantidade de tempo que ela ultrapassa essa coordenada.

Para resolver isso:

  • Faça alguns testes movendo a bolinha e usando a posição horizontal (eixo x) dela como referencial para definir aonde será contabilizado os pontos.

No seu caso alterando o número de 231 para 229 é o suficiente para resolver o problema.


Bolinha presa na raquete:

  • 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 2”.

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 no código da 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.

Outra forma de resolver:

Podemos tomar algumas medidas:

  • Colocar a raquete contra a parede para não ter chance de passar para atrás dela;
  • Modificar o código de colisão fazendo com que ao tocar na raquete a posição x da bolinha vá para frente da raquete e mude de direção:

Captura de tela retirada do scratch, na imagem há um código que diz que quando a bandeira for clicada sempre que a bolinha estiver tocando em minha raquete então mude a posição horizontal da bolinha para menos duzentos e quinze e aponte para a direção inversa menos um e toque o som de raquetada. A outra parte do código se refere ao mesmo modelo só que tocando na raquete do oponente ela mudará a posição horizontal da bolinha para duzentos e quinze positivo.


Se precisar de ajuda com qualquer dúvida ou problema fico à disposição, conte com a gente!

Um bom dia para você e bons estudos.

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