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

[Sugestão] Usar só uma função de colidir para as 2 raquetes (sem biblioteca)

Oi pessoal. Para quem quiser usar só uma função puxando as variáveis X,Y sem precisar usar a biblioteca e repetir duas funções (ColisãoMinhaRaquete e ColisãoRaqueteOponente) segue abaixo a solução para otimizar seu código.

Primeiro gravar os let abaixo:

 let xRaqueteComputador = 580; 
 let yRaqueteComputador = 160;

Depois incluir lá na function draw assim:

verificaColisaoRaquete (xRaquete, yRaquete);
verificaColisaoRaquete (xRaqueteComputador, yRaqueteComputador);

E por fim só colocar a função abaixo:

function verificaColisaoRaquete(x,y) {
    if (xBolinha + raio > x - comprimentoRaquete
        && xBolinha - raio < x + comprimentoRaquete 
        && yBolinha - raio < y + alturaRaquete 
        && yBolinha + raio > y) {
    velocidadeXBolinha *= -1;
        }
}

OBS: Eu alterei o nome da raquete "Oponente" para "Computador". Por isso, caso você copie e não funcione, é só colocar o nome que você escolheu.

Espero ter ajudado. Valeu!

1 resposta
solução!

Oi Marcelo, tudo bem?

Que legal que você encontrou uma maneira alternativa de otimizar o código para a colisão das raquetes no jogo Pong, sem a necessidade de usar a biblioteca e repetir duas funções. Isso é ótimo! Compartilhar soluções alternativas é uma ótima maneira de aprender e ajudar os outros a aprenderem também.

Sua solução parece estar correta, e é uma maneira válida de otimizar o código. Você criou uma única função verificaColisaoRaquete(x, y) que pode ser usada para ambas as raquetes, apenas alterando os parâmetros de entrada. Isso reduz a repetição de código, o que é uma boa prática de programação.

Parabéns!

Um abraço e bons estudos.

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