Eu tenho uma caixa delimitadora no meu personagem, sua posição no quadro anterior e o quadro atual. A caixa delimitadora é alinhada ao eixo.
Meu personagem está correndo dentro de uma caverna, tenho uma lista de pontos (linhas) que representam a parede da caverna (não alinhada ao eixo)
Eu tenho um algoritmo de granulação grossa que me diz quando alguma parte do meu personagem provavelmente colidiu com alguma parte da parede da caverna.
Eu não tenho um algoritmo de granulação fina para me dizer especificamente qual linha da parede foi colidida e em que ponto.
Meu pensamento atual era que eu poderia criar uma linha para cada canto da caixa delimitadora, da posição no quadro anterior até a posição no quadro atual e, em seguida, testar cada uma dessas linhas para interseções com qualquer uma das linhas da caverna parede.
Meu google fu, no entanto, não me mostrou uma fórmula fácil para calcular cruzamentos. Eu escolhi uma maneira ruim de fazer isso ou sou apenas ruim na pesquisa?
Meu jogo é escrito em scala, no entanto, eu posso ler / traduzir praticamente qualquer linguagem de estilo c e muitas linguagens de script, o que você quiser responder