Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.