Nicht schlecht!
Vorschläge:
Kollisionsabfrage nicht nur an x und y festmachen, da die Spielfigur auch eine Ausdehnung besitzt. Im einfachsten Fall einfach fragen, ob es an den Ecken und Seitenmittelpunkten eine Blockade gibt. Besser noch, entlang der gesamten Kanten. So wie es jetzt ist, kann ich zu 49% in die Wände eintauchen
Das Einlesen nicht über eine unsichtbare Memo-Komponente sondern über TStringList machen. Das get sogar noch besser, da Du so TStringList.LoadFromFile() benutzen kannst. Ein echter Parser wäre auch besser, der könnte z.B. mit ini Files arbeiten. Damit könnte man in einer ini definieren, welche Map-Objekte es gibt, welche Eigenschaften die haben und wie die Texturdatei heißt. In deiner Mapdatei könnten die Maps dann unabhängig vom Quelltext gestaltet werden (Moddability).
Die Ausrichtung der Spielfigur sollte sich auch ändern, wenn sie nicht in die gewünschte Richtung laufen kann... :p Ich weiß dass es nur eine Game-Engine ist, trotzdem...