1
resposta

[Dúvida] Erro na execução

Olá, pessoal. Estou começando agora e estou cheio de dúvidas/problemas. Tentei fazer a verificação de colisão com a raquete sem importar da biblioteca, para tentar aprender mais sobre os códigos, mas estou tendo dificuldade quanto a colisão com a raquete do oponente.

Os problemas:

  1. Bola atravessa a raquete do oponente (exceto quando a raquete está abaixo da bola);
  2. Bola não ultrapassa a linha X da raquete oponente quando a raquete está abaixo da bola;
  3. Acontece bug as vezes de a bola ficar presa atrás da raquete, não voltar e gerar pontos infinitos

E outra, que não é um erro, mas gostaria de saber como faço para o texto do placar crescer para um determinado lado. Por exemplo, o texto do meu placar cresce para a direita enquanto o texto do oponente cresce para a esquerda. Quando acontece isso, tal hora os números vão invadir a área do texto "x" que coloquei para separar os placares. Gostaria de inverter. O meu placar crescer para a esquerda e do oponente crescer para a direita.

Projeto: https://editor.p5js.org/lucasribeirox1/sketches/MerzTJj0L

1 resposta

Olá Lucas, tudo bem com você?

Peço desculpa pela demora para respondê-lo.

Em relação à travessia da bola, isso ocorre, pois na sua função que verifica a colisão da raquete do oponente você acabou fazendo a última checagem ao contrário, você deveria comparar se o yBola - raio é maior do que o yRaqueteO, mas você estava comparando se era menor. O que, em conjunto com toda a condição, deixava a bolinha passar. Código de exemplo abaixo:

function verificaColisaoRaqueteOponente (){
  if ((xBola + raio) > (xRaqueteO - larguraRaqueteO) && (yBola + raio) > (yRaqueteO - alturaRaqueteO) && (yBola - raio > yRaqueteO )){
  velocidadeXBola *= -1;
  }
}

Agora sobre o seu segundo ponto, isso está acontecendo pela lógica implementada para verificar a colisão, em casos como esse ela se mostra um pouco limitada, pois no ponto em que isso ocorre ela não valida corretamente. Com isso lhe aconselho a utilizar o método de verificação já pronto, comentado e usado em aula.

Já sobre o bug da bolinha, vou compartilhar com você um tópico de um aluno que criou uma solução para esse caso

Por fim, em relação ao placar, por conta de algumas limitações da biblioteca não se tem nenhum método em que você posso alterar isso, o que você pode estar fazendo é realizar ajustes no posicionamento dos placares para tentar evitar que isso ocorra.

Espero ter lhe ajudado. Caso durante os seus estudos você tenha dúvidas ou problemas, recorra ao fórum, estaremos aqui para ajudá-lo.

Abraços e bons estudos!

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