2
respostas

Meu Pomo Pong - A raquete do oponente não erra mesmo com a (posição y - 50)

Olá! Alguém sabe como faz para resolver esse bug? Já aumentei a (posição y - 100) e da erro, a bolinha fica presa na quina da tela.

segue link:

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

2 respostas

Oi Renata, tudo certo? Espero que sim!

Obrigado pela paciência na espera de uma resposta.

Primeiramente, gostaria de parabenizar seu projeto, as vassouras e os efeitos sonoros ficaram show!


Quanto ao bug da raquete do oponente não errar podemos fazer o seguinte:

O problema aparenta ser

  • No código da raquete mudar de deslize por 0 segundos para deslize por 0.1 segundos;

Captura da tela, quando bandeira for clicado sempre deslize por 0.1 segundos até eixo horizontal de duzentos e vinte e três, posição vertical é a da bolinha e esconda a variável da posição vertical da bolinha.

Isso torna a raquete do oponente mais travada, porém mais equilibrada.

  • No código principal da bolinha retiramos o operador verde que diminui -50 do eixo y e faremos mudanças diretamente na raquete:

Captura de tela do scratch, quanto a bandeira for clicada sempre deslize por zero segundos até eixo horizontal duzentos e vinte e três e eixo vertical o produto da subtração de sessenta e menos cinquenta e nove ponto seis.

  • Nesse caso acrescentamos o operador no eixo y na posição y da bolinha;
  • Os números subtraídos são uma forma de deixar aleatório o movimento da raquete dentro de um intervalo em relação a posição da bolinha.

Tornando a raquete mais lenta, porém funcionando corretamente.

Alinhar o placar:


  • Arrastar o placar mais para direita usando o mouse para que fique simétrico.

Bolinha não ficar 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.

Continuação (1/2 )...

Continuação (2/2).

Outras formas de resolver:

Podemos tomar algumas medidas focadas na raquete:

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

Ou

Captura de um código do scratch, o código descreve que quando a bandeira for clicada sempre espere até que a posição horizontal seja menor que menos duzentos e vinte e oito e toque o som de ponto, enquanto isso espere até 1 segundo e se a posição ainda for menor que menos duzentos e vinte e oito adicione vinte ao eixo horizontal e adicone  aos pontos do oponente

Quando a bolinha fica presa ela está fixada em um posição, fazendo com os pontos e o som de pontos sejam contabilizados várias vezes.

O código primeiramente irá verificar se a bolinha chegou até o local onde os ponto são contados, se isso se comprovar, o som de ponto é tocado.

A parte de esperar vai basicamente ver se a bolinha ainda está naquela posição, se ela estiver a sua posição x (horizontal) receberá um valor que retire ela de lá e a partir desse momento o ponto é contado, evitando que seja repetido várias vezes.


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! ✓.