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

[Dúvida] Bolinha do Pong descontrolada

Olá pessoal! Fiz algumas alterações nos códigos porque a bolinha estava ultrapassando a raquete do oponente e marcando números infinitos. Fui seguindo por umas dicas aqui no fórum. Estava indo muito bem, mas agora não sei onde estou errando, e a bolinha ficou descontrolada. Alguém poderia me dar uma ajudinha, por favor?

Segue o link do projeto: https://scratch.mit.edu/projects/770662764

3 respostas

Oi, Sally! Tudo bem?

Para resolver os bugs devemos fazer algumas alterações no nosso código:

  • Inicialmente devemos alterar o parâmetro de diminuição da posição y, representado pela seta verde na imagem abaixo, trocando o número 50 pelo número 65.

Captura de tela do Scratch, imagem com um plano de fundo branco e ao centro um código colorido com os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, mova 10 passos, mude posição y da bolinha para posição y - 50, se tocar na borda, volte.

  • Após isso, vamos trabalhar com o seguinte código:

Captura de tela do Scratch, imagem com um plano de fundo branco e ao centro um código colorido com os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, se tocando em raquete do oponente então, aponte para a direção número aleatório entre -30 e -125, toque o som Ponto, se tocando em minha raquete então, aponte para a direção número aleatório entre 30 e 125, toque o som Ponto.

Devemos retirar os comandos número aleatório entre... e em seu lugar colocar o comando direção* -1 . Somado a isso, devemos trocar o som Ponto pelo som Raquetada.

Após as alterações o nosso código deverá ficar da seguinte forma:

Captura de tela do Scratch, imagem com um plano de fundo branco e ao centro um código colorido com os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, se tocando em raquete do oponente então, aponte para a direção direção * -1, toque o som Raquetada, se tocando em minha raquete então, aponte para a direção direção * -1, toque o som Raquetada.

  • Por fim, devemos fazer as seguintes alterações nos códigos responsáveis pela pontuação: vamos retirar o comando aponte para a direção número aleatório entre... e adicionar alguns comandos, de forma que, os nossos códigos fiquem da seguinte maneira:

Captura de tela do Scratch, imagem com um plano de fundo branco e ao centro dois códigos colorido, um ao lado esquerdo e o outro ao lado direito, com os seguintes comandos, seguindo a ordem de cima para baixo no código ao lado esquerdo: quando bandeira verde for clicada, sempre, espere até que posição x menor que -229, toque o som Ponto, espere 0.5 segundos, se posição x menor que -229 então, adicione 10 a x, senão adicione 1 a pontos do oponente. Seguindo a ordem de cima para baixo no código ao lado direito: quando bandeira verde for clicada, sempre, espere até que posição x maior que 229, toque o som Ponto, espere 0.5 segundos, se posição x maior que 229 então, adicione -10 a x, senão adicione 1 a meus pontos.

Seguindo essa nova lógica, com o toque da bolinha na parede (quando a posição da bolinha for menor que -229 ou maior que 229), o som de ponto será tocado imediatamente, entretanto o jogo esperará 0.5 segundos e irá conferir se a bolinha continua naquela posição, ou seja, se ela está presa. Caso a bolinha continue naquela posição adiciona-se 10 a posição x ao lado esquerdo ou -10 ao lado direito, libertando-a. Caso não, adiciona-se um ponto normalmente.

Espero ter ajudado, caso tenha ficado alguma dúvida basta comunicar, estou a disposição!

Um forte abraço e bons estudos!

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

Oi Sarah! Estou bem e você?

Muito obrigada pela ajuda! Mas acredito que eu ainda precise de mais uma ajudinha. Fiz exatamente como você indicou, agora melhorou muito inclusive. Porém, está demorando para marcar os pontos, mesmo que a bolinha bata na parede do oponente ou do meu lado, não marca os pontos. Será que estou fazendo algo de errado?

solução!

Oi, Sally!

Podemos mudar o parâmetro da posição x no nosso código responsável pela pontuação. Como podemos ver no código alterado, mostrado pela imagem abaixo:

Captura de tela do Scratch, imagem com um plano de fundo branco e ao centro dois códigos colorido, um ao lado esquerdo e o outro ao lado direito, com os seguintes comandos, seguindo a ordem de cima para baixo no código ao lado esquerdo: quando bandeira verde for clicada, sempre, espere até que posição x menor que -225, toque o som Ponto, espere 0.5 segundos, se posição x menor que -225 então, adicione 10 a x, senão adicione 1 a pontos do oponente. Seguindo a ordem de cima para baixo no código ao lado direito: quando bandeira verde for clicada, sempre, espere até que posição x maior que 225, toque o som Ponto, espere 0.5 segundos, se posição x maior que 225 então, adicione -10 a x, senão adicione 1 a meus pontos.

Nesse caso, apenas alteramos o valor 229 e -229 por 225 e -225. Caso não dê certo esse valor em específico, você pode ir o alterando, aumentando ou diminuindo unidades, até a sua pontuação começar a contabilizar.

Qualquer dúvida remanescente, sinta-se a vontade para comunicar!

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