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

Erro função "colisaoRaquete"

Estou testando criar o código da colisão com a raquete, sem a biblioteca importada, porém na raquete do oponete a bolinha não faz a colisão e volta, ela passa direto, alguém que tenha feito e conseguiu?


function colisaoRaquete(){
  if (xBolinha - raio < xMRaquete + lMRaquete && yBolinha - raio < yMRaquete + cMRaquete && yBolinha + raio > yMRaquete){
    velocidadeXBolinha *= -1;
  }
}

function colisaoRaqueteOponente(){
  if (xBolinha + raio > xRaqueteOponente + lMRaquete && yBolinha - raio > yRaqueteOponente + cMRaquete && yBolinha + raio < yRaqueteOponente){
    velocidadeXBolinha *= -1;
  }
}
2 respostas
solução!

Boa tarde, Lorena! Tudo bem?

Eu também estou aprendendo, assim como você, mas acho que posso te ajudar.

Eu também não utilizei a biblioteca importada, e deu certo aqui. Segue este trecho do meu código:

function verificaColisaoRaqueteOponente() {
  if (xBolinha + raio> xRaqueteOponente + larguraRaquete/2 && yBolinha - raio < yRaqueteOponente + alturaRaquete && yBolinha + raio > yRaqueteOponente) {
    velocidadeXBolinha *= -1;
    raquetadaSom.play();
  }
}

Notei que na sua função colisaoRaqueteOponente() há dois operadores de comparação trocados:

  • yBolinha - raio >** yRaqueteOponente + cMRaquete **deveria ser yBolinha - raio < yRaqueteOponente + cMRaquete
  • yBolinha + raio <** yRaqueteOponente **deveria ser yBolinha + raio > yRaqueteOponente

Assim como você já havia feito na função colisaoRaquete(), pois a verificação de altura (eixo Y) para a colisão vai seguir a mesma lógica para a sua raquete e a do oponente.

Espero ter ajudado :)

Obrigada Lara, consegui resolver o meu problema com sua ajuda!!!

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