1
resposta

eu queria colidir a raquete com o codigo antigo

eu prefiro o codigo antigo, ai fico colocando o codigo que usavam antes para a colisão e sempre dava erro, alguem pode me ajudar?

1 resposta

Olá, Heitor, tudo bem?

A colisão da raquete oponente apesar de seguir a mesma lógica da colisão minha raquete, ela terá uma diferença no código por estar em posição diferente.

Antes de abordarmos o código da colisão do oponente, recapitularei a lógica da colisão na minha raquete:

xBolinha - raio < xRaquete + raqueteComprimento 

Nessa linha, primeiro subtraímos o raio da bola do ponto X da bola, pois queremos achar o ponto de contato do lado esquerdo da bola. Depois, nós somamos o comprimento da raquete ao X da raquete, pois queremos achar o ponto de contato do lado direito da raquete. Por fim, usamos o sinal de menor que para saber se o ponto de colisão da bola está antes do ponto de colisão da raquete.

Considerando que, você seguiu o código do professor na colisão minha raquete, abordarei mais detalhadamente apenas a colisão da raquete oponente. Na função verificaColisaoOponente() na primeira verificação utilizaremos:

xBolinha + raio > xRaqueteOponente - raqueteComprimento.

Queremos achar o ponto de contato a direita da bolinha, por isso somamos o raio (do X da bola) .Também queremos agora achar o ponto de contato à esquerda da raquete oposta, e por isso, subtraímos o comprimento da raquete oposta (ao seu X). Por fim, precisamos verificar se o ponto de contato da bola passou do ponto de contato da raquete oposta, e por isso usamos o maior que.

Na segunda verificação utilizaremos:

yBolinha + raio > yRaqueteOponente

Essa linha fará a verificação na parte abaixo da bolinha na posição y.

Segue o código com as devidas alterações:

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

Não esqueça de chamá-la na função draw.

Espero ter ajudado.

Caso a dúvida persista, você pode também compartilhar o link do seu projeto, assim podemos te ajudar mais assertivamente.

Reforço que estarei à disposição para tirar dúvidas.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!