Ich mache ein isometrisches Spiel. Wenn der Spieler versucht, diagonal in eine Wand zu gehen, möchte ich, dass sie reibungslos darüber gleiten, sodass jeder Teil der Bewegung verwendet wird, der legal ist, und alles, was in Richtung des Normalen geht, weggeworfen wird. Wände können einen beliebigen Winkel haben, nicht nur vertikal oder horizontal, und der Player hat eine 360-Grad-Bewegung.
Ich fühle mich fast da, aber ich kann das letzte Stück nicht in Position bringen.
Update: Tolle Neuigkeiten an alle! Ich habe es funktioniert. Aber ... ich bin ein bisschen verwirrt, was ich normalisieren soll und was nicht. Das Normale muss nur ein Einheitsvektor sein, oder? aber dann mische ich das mit meiner Eingabe, damit ich das normalisiere - irre ich mich?
Übrigens habe ich auch festgestellt, dass ich den Player 1 Pixel in Richtung Normal schieben muss, damit sie nicht an Dingen hängen bleiben - funktioniert gut.