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

Ajuda para fazer com que a bolinha colida com a raquete do oponente sem utilizar o código sugerido pelo professor

Primeiro tentei "colar e copiar" mudando o nome da função, algumas variáveis e sinais de desigualdade:

Antes:

function verificacolisaoraquete(){

  if(xBOLINHA - rAIO < xRAQUETE + comprimentoraquete && yBOLINHA - rAIO < yRAQUETE + alturaraquete && yBOLINHA + rAIO > yRAQUETE){

    velocidadeXBOLINHA *= -1;

  }
}

Depois:

function verificacolisaoraqueteoponente(){

  if(xBOLINHA - rAIO > xRAQUETEOPONENTE + comprimentoraquete && yBOLINHA - rAIO < yRAQUETEOPONENTE + alturaraquete && yBOLINHA + rAIO > yRAQUETEOPONENTE)

    velocidadeXBOLINHA *= -1;
}

Porém a bolinha continua não colidindo com a raquete do oponente; Oque mais posso fazer?

1 resposta
solução!

Acho que como a raquete do oponente está no outro extremo da tela, precisa somar o raio ao xBOLINHA pra colisão funcionar. O código desse jeito checa só o lado esquerdo da bolinha, não o lado direito onde a raquete do oponente está. Eu fiz assim e deu certo, a única diferença do seu foi essa (perdão as variáveis estarem em inglês, to treinando junto):

if (xCircle + radius > xORect && yCircle - radius < yORect + oRectHeight && yCircle + radius > yORect){
    speedXCircle *= -1;
}    

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