Solucionado (ver solução)
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.