1
resposta

[Projeto] Só compartilhando um código diferente que o ChatGPT entregou

ele me forneceu um código diferente para mudar a tragetória, quando bater na ponta inferior ou superior, funcionou certinho, vou deixar aqui caso alguém queira testar:

class Bola {
  // ... (restante do código)

  verificarColisaoRaquete(raquete) {
    if (
      this.x - this.r / 2 <= raquete.x + raquete.w / 2 &&
      this.x + this.r / 2 >= raquete.x - raquete.w / 2 &&
      this.y + this.r / 2 >= raquete.y - raquete.h / 2 &&
      this.y - this.r / 2 <= raquete.y + raquete.h / 2
    ) {
      // Calcula a posição relativa da colisão na raquete (entre -1 e 1)
      let deltaY = this.y - (raquete.y - raquete.h / 2);
      let normalizedDeltaY = deltaY / (raquete.h / 2);

      // Define um ângulo máximo para o efeito (em radianos)
      const maxAngle = radians(60);

      // Calcula o ângulo base com base na posição relativa da colisão
      let angle = normalizedDeltaY * maxAngle;

      // Inverte a direção horizontal da bola
      this.velocidadeX *= -1;

      // Aplica o efeito do ângulo na direção vertical da bola
      this.velocidadeY = Math.sin(angle) * this.velocidadeX;

      // Aumenta a velocidade após a colisão
      this.aumentarVelocidade();
    }
  }

  // ... (restante do código)
}
1 resposta

Oi, Weber, tudo bem?

Muito obrigado por compartilhar essa informação, tenho certeza que vai inspirar os colegas na criação dos projetos.

Continue mergulhando em tecnologia e se tiver dúvidas, conte com o fórum. Abraços!