Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro da bolinha dando delay quando pega na parte inferior ou superior da raquete com borda.

Boa tarde! estava terminando de finalizar a aula mas percebi um delay da raquete em colisão com a bola. Quando ela toca na borda com a parte inferior ou superior da raquete ela começa a encostar várias vzes entre a raquete e a borda contabilizando muitos pontos. Poderiam me dar um help?

https://editor.p5js.org/Mariooou/full/wBDY2gLHa

2 respostas
solução!

Olá, Jose!

Pelo que entendi, o problema que você está enfrentando é que quando a bola toca na borda com a parte inferior ou superior da raquete, ela começa a encostar várias vezes entre a raquete e a borda, contabilizando muitos pontos. Isso pode estar acontecendo porque a bola está "presa" entre a raquete e a borda, causando várias colisões em um curto espaço de tempo.

Uma possível solução para esse problema seria adicionar uma verificação adicional na função que lida com a colisão da bola com a raquete. Você poderia verificar se a bola está se movendo na direção da raquete antes de registrar a colisão. Assim, a colisão só seria registrada uma vez, quando a bola toca a raquete pela primeira vez, e não seria registrada novamente até que a bola se movesse para longe e depois voltasse a tocar a raquete.

Aqui está um exemplo de como você poderia fazer isso:

function verificaColisaoRaquete(x, y) {
    if (yBolinha - raio < yRaquete && yBolinha + raio > yRaquete && xBolinha - raio < xRaquete && xBolinha + raio > xRaquete) {
        if (yBolinha < yRaquete && velocidadeYBolinha > 0) {
            return false;
        }
        if (yBolinha > yRaquete && velocidadeYBolinha < 0) {
            return false;
        }
        return true;
    }
    return false;
}

Nesse código, velocidadeYBolinha é a velocidade vertical da bola, e yRaquete é a posição vertical da raquete. A função verificaColisaoRaquete verifica se a bola está se movendo na direção da raquete antes de registrar a colisão.

Espero que isso resolva o seu problema. Lembre-se, essa é apenas uma sugestão e pode precisar de ajustes para se adequar ao seu código específico. Espero ter ajudado e bons estudos!

Show! Deu super certo!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software