Oi Aldair. Vc poderia mandar o link do seu projeto para eu ter uma noção e poder tentar te ajudar ?Isso foi no scratch?Porque se foi eu acabei de terminar esta parte do curso e passei pelos mesmos problemas.
O mesmo problema aconteceu comigo! Ainda não consegui resolver!
Para resolver este problema eu coloquei espere 1 segundo na parte responsável pelo contato das raquetes com a bolinha :
Resolveu parcialmente mas eu fiz muitas outras coisas para evitar bugs como :
Obs: se vc ainda não tiver feito isto e posteriormente fizer, será nescessário corrigir os valores das posições iniciais das fantasias modificadas.Isto porque quando você modifica isto estes valores mudam e é só colocar os valores denovo.
Comigo o problema acontece nas duas linguagens, tanto no Scretch quanto no P5. Vou verificar os procedimentos que o Vitor recomendou no Scretch para ver se o problema é sanando. No entanto, no P5, continuo sem uma solução.
No meu p5 também acontece a mesma coisa. E as vezes a minha bolinha continua presa mesmo depois da raquete ter "andado" e não estar mais prendendo a bolinha.
Anderson eTalita eu ainda não cheguei nesta parte mas se eu descobrir alguma coisa eu falo .
estou com o mesmo bug
Obrigada pelo retorno! Ainda não consegui resolver..
Já cheguei na parte que da o bug no P5 é igual o do Scratch . Vou ver se consigo resolver .Criei outro tópico também para ver se mais alguém sabe.
Em relação ao bug que acontece no p5, parece que é o mesmo que o do scratch. Infelizmente eu não descobri o motivo do bug e nem como corrigir ele . Só sei que tem alguma relação com o fato da bolinha tocar os lados do retângulo(parte de cima e de baixo) e também descobri uma forma de pelo menos amenizar a situação.
Imagem ilustrativa dos lados do retângulo:
Para amenizar o problema eu criei uma nova função:
Dentro da função eu criei este código:
Explicação: Em resumo este código vai fazer com que a bolinha seja "teletransportada para fora" caso o ponto mais a esquerda da bolinha(xBolinha-raio) ultrapasse a raquete(xRaquete).Isso acontece porque temos duas condições que fazem com que a bolinha precise estar na área da raquete para que esse processo se realize:
Repare que estes dois segmentos foram os mesmos utilizados pelo professor na aula que ele ensina a função verificaColisaoRaquete().
A única coisa que mudou foi que em vez de xBolinha - raio < xRaquete + larguraRaquete temos xBolinha - raio < xRaquete. Isto porque o xBolinha - raio < xRaquete + larguraRaquete se refere a face direita da raquete(onde a bolinha toca) e no xBolinha - raio < xRaquete se refere a face esquerda ( onde a bolinha só toca se ela estiver bugada). Com isso este código vai "teletransportar" a bolinha quando ela ficar bugada um pouco para fora multiplicando o valor da velocidadeXBolinha por 3:
Obs: Este código me ajudou bastante mas não é perfeito.Ele também impede que a bolinha saia para fora da tela quando ela entra atrás da raquete . Dependendo de como está seu código talvez você tenha que mecher na parte de xBolinha *=3 . Você pode colocar para ela aparecer no meio ou em qualquer outro lugar adicionando valores a x.Eu também utilizei este código somente em uma das raquetes porque ainda não cheguei na parte da raquete do oponente ,mas acredito que de certa forma é o mesmo princípio.
Vitor, obrigado pelo retorno. Vou tentar essa nova função para ver como o jogo se comporta. Valeu.