Como mencionado varias vezes a bolinha trava atrás da raquete ou fica presa no canto!
Como mencionado varias vezes a bolinha trava atrás da raquete ou fica presa no canto!
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:
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:
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:
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:
Segue código:
Caso surja alguma dúvida estamos à disposição, conte conosco!
Sucesso
Um grande abraço e até mais!