Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Olá, várias vezes a bolinha trava atrás da raquete!

Como mencionado varias vezes a bolinha trava atrás da raquete ou fica presa no canto!

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

1 resposta
solução!

Olá Lucas, tudo bem?

A bolinha se prende na raquete por conta do código de movimento da bolinha, isso acontece pois definimos que ao tocar na raquete a bolinha deve inverter a sua direção, ou seja, ir para o lado contrário.

Quando a bolinha colide com a borda da tela e a raquete está próxima, ela também vai acertar a parte superior ou inferior da raquete, sendo assim, a bolinha colide com a borda e logo em seguida colide com a raquete, criando um loop onde a bolinha colide infinitamente de um lado para o outro. Tendo isso em mente, iremos definir uma brecha de direções específicas, dessa forma, sempre que houver a colisão com a raquete a bolinha irá para onde queremos:

No ator bolinha, removeremos o bloco “aponte para a direção * (-1)”. Mudaremos para um bloco mais preciso quanto a direção da raquete, assim evitando o problema:

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

Removeremos também o bloco verde com o operador “ou” e usaremos o bloco “tocando em raquete 1”. Como definiremos uma direção específica, ela vai variar para as duas raquetes, sendo assim precisaremos tratar da colisão com individualidade para as duas raquetes:

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

Adicionamos o bloco “aponte para a direção”, o bloco “número aleatório entre” e colocamos os números 30 e 125. Quando ocorre a colisão da bolinha na raquete, a sua direção vai ter como base a circunferência, sendo assim, usamos valores esses valores pois representam os ângulos possíveis de direção da bolinha:

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

Repetimos no código da Raquete do oponente, alterando os ângulos para -30 e -125, usamos valores negativos pois são mais baixos e representam os ângulos possíveis de direção da bolinha:

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.

Segue código:

Caso surja alguma dúvida estamos à disposição, conte conosco!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, 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