
Estou fazendo um jogo isométrico. Quando o jogador tenta andar diagonalmente contra uma parede, quero que deslizem suavemente sobre ela, para que qualquer parte do movimento seja legal e usada, e qualquer coisa na direção do normal é jogada fora. As paredes podem ser de qualquer ângulo, não apenas verticais ou horizontais, e o player possui 360 movimentos.
Sinto que estou quase lá, mas não consigo colocar a última peça no lugar.
Atualização: boas notícias a todos! Eu tenho isso funcionando. Mas ... estou um pouco confuso sobre o que deveria estar normalizando e o que não. O normal só precisa ser um vetor de unidade, certo? mas então eu estou misturando isso com a minha entrada, então estou normalizando isso - estou errado?
A propósito, também descobri que preciso empurrar o player 1 pixel na direção normal, para que eles não fiquem presos às coisas - funciona bem.