Ich versteh von dem was du geschrieben hast recht wenig
Versuch dich vielleicht noch mal etwas besser auszudrücken. Einfach noch mal lesen bevor du geschrieben hast. Vielleicht hilft es dir aber weiter.
Deine Figur hat an sich bei der Kollision zwei Zustände. Sie kollidiert nicht, oder sie kollidiert. Wenn du sie nach links bewegst und sie nicht kollidiert, ist alles gut. Wenn sie kollidiert, verschiebst du sie so lange nach rechts , bis sie nicht mehr kollidiert. Für unten, oben und rechts geht das genau so. Wenn du jetzt diagonal laufen willst, dann solltest du die Achsen nicht einzeln betrachten. Dafür gibt es auch Möglichkeiten, aber solange du das nicht unbedingt brauchst geht es anders einfacher.
Beispiel, du bewegst dich nach links und oben gleichzeitig. Wenn der Spieler kollidiert, dann verschiebst du ihn so lange nach rechts und unten gleichzeitig, bis er nicht mehr kollidiert.
Im Prinzip hast du deinen Richtungsvektor bei der Bewegung. Beim zurückschieben, negierst du diesen Vektor einfach.