Je fais un jeu isométrique. Lorsque le joueur essaie de marcher en diagonale dans un mur, je veux qu'il glisse doucement dessus, donc toute portion du mouvement qui est légale est utilisée, et tout ce qui est dans le sens de la normale est jeté. Les murs peuvent avoir n'importe quel angle, pas seulement vertical ou horizontal, et le joueur a un mouvement à 360 °.
J'ai l'impression d'être presque là mais je ne peux pas mettre la dernière pièce en place.
Mise à jour: bonnes nouvelles à tous! Je le fais fonctionner. Mais ... je suis un peu confus ce que je devrais normaliser et ce qui ne l'est pas. La normale doit juste être un vecteur unitaire, non? mais ensuite je mélange ça avec mon entrée donc je normalise ça - je me trompe?
Soit dit en passant, j'ai également constaté que je dois pousser le lecteur de 1 pixel dans la direction de la normale, afin qu'il ne reste pas coincé sur les choses - fonctionne bien.