Solucionado (ver solução)

Importante

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!

Solucionado
(ver solução)
13
respostas

Bug na bolinha do jogo pong.

A bolinha fica meio que presa por um tempo e depois se solta da raquete do jogador, na raquete do oponente fica normal e não acontece nenhum bug desse tipo.

13 respostas

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!

solução!

Para resolver este problema eu coloquei espere 1 segundo na parte responsável pelo contato das raquetes com a bolinha :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Resolveu parcialmente mas eu fiz muitas outras coisas para evitar bugs como :

  • Tirar o contorno da bolinha e das raquetes :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

  • Centralizar a bolinha e a raquete no centro na parte de fantasias :

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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.

Eu até colocaria o link do projeto aqui, mas eu fiquei quebrando a cabeça pra resolver e acabei apagando pra começar tudo do começo.

Mais tarde vou tentar usar a dica do Victor, se der certo, marco como solucionado aqui.

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:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Para amenizar o problema eu criei uma nova função:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Dentro da função eu criei este código:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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:

  • yBolinha - raio < yRaquete + alturaRaquete &&
  • yBolinha + raio > yRaquete

Repare que estes dois segmentos foram os mesmos utilizados pelo professor na aula que ele ensina a função verificaColisaoRaquete().

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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.