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

Raquete adversário.

Como ficaria o código de verificação de colisão da raquete do adversário se fosse para fazer manualmente? Eu fiz assim:

function verificaColisaoRaqueteOponente() { if (xBolinha + raio > xRaqueteOponente - raqueteComprimento && yBolinha - raio > yRaqueteOponente - raqueteAltura && yBolinha + raio > yRaqueteOponente) { velocidadeXBolinha *= -1; } }

Porem quando a bolinha passa por baixo da raquete adversária ela não consegue encostar na parede. O que pode estar errado?

2 respostas
solução!

Neste caso eu faria assim:

function verificaColisaoRaqueteOponente(){
    if(xBolinha + raio > xRaqueteOponente
&& yBolinha + raio > yRaqueteOponente 
&& yBolinha - raio < yRaqueteOponente + raqueteAltura){
        velocidadeXBolinha *= -1;
    }
}

Vou tentar explicar meu racíocinio:

  • SE o canto mais à direita da bolinha for maior que a coordenada mais à esquerda da raquete
  • E a parte mais inferior da bolinha for maior que a parte mais superior da raquete
  • E a parte mais superior da bolinha for maior que a parte mais inferior da raquete (lembrando que as coordenadas são invertidas)
  • ENTÃO velocidade da bolinha será invertida

Testa aí pra ver se funciona :)

Muito obrigado pela ajuda e pela explicação. Funcionou aqui.