Estou tentando criar um jogo 3D simples e preciso restringir o jogador dentro dos limites do mundo do jogo. Quando o jogador atinge os lados do mundo, quero que a nave do jogador ricocheteie um pouco.
Na verdade, estou tentando prender o jogador dentro de uma caixa e impedi-lo de escapar pelos lados ...
Consegui definir os limites do mundo do jogo como uma coleção de aviões, com normais e distâncias da origem. O jogador tem uma esfera delimitadora esférica e, seguindo este site http://www.gamasutra.com/view/feature/3383/simple_intersection_tests_for_games.php , consegui detectar colisões.
Agora não consigo entender o que fazer quando uma colisão é detectada. O melhor que consigo controlar é o jogador ficar preso no avião, atravessá-lo diretamente ou saltar repetidamente em um ritmo muito rápido.
O senso comum me diz que preciso calcular o ângulo refletido do avião, usando o normal e aplicá-lo à velocidade do jogador, no entanto, acho que preciso primeiro ver se o jogador passou pelo avião, o que não é possível. exercite-se.