Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Colisão da raquete inimiga não funciona.

Tentei seguir alguns passos diferentes do que é ensinado nos vídeos para eu ter uma leitura mais fácil do código na minha opinião e acabei cometendo algum erro que não sei resolver, na minha cabeça era apenas inverter alguns valores que funcionaria, porem não funciona. Segue a linha dos códigos das duas raquetes, agradeço a ajuda desde já.

function colisaoMinhaRaquete(){
    if (xBolinha - raio < xRaquete + tamRaquete && yBolinha - raio < yRaquete + largRaquete && yBolinha - raio > yRaquete){
      velocidadeXBolinha *= -1
    }
}
function colisaoRaqueteOponente(){

    if (xBolinha - raio > xRaqueteInim + tamRaqueteInim && yBolinha - raio > yRaqueteInim + largRaqueteInim && yBolinha - raio < yRaquete){
      velocidadeXBolinha *= +1
    }

}
1 resposta
solução!

Olá. Me parece que você deve se atentar aos seguintes pontos:

  • A extremidade da bolinha que colide com a raquete do oponente é a oposta à que colide com a sua raquete. Então enquanto em um caso é o centro da bolinha menos o raio, no outro caso é o centro da bolinha mais o raio.
  • A diferença em tratar cada lado da raquete que sofrerá a colisão com a bolinha, em relação ao plano cartesiano. Ambas as raquetes são desenhadas do ponto esquerdo superior para o ponto direito inferior (x + l, y + a), enquanto a face da sua raquete que colide com a bolinha é a direita (x + l), a face da raquete do oponente que colide com a bolinha é a esquerda (x).