ja ist klar das die figur in der "Mauer" ferst hängt um das zu behben müste ein if x +1 > .... reichen in der collisions funktion dabei musst du halt ermitteln in welche richtung dein player läuft und dann if x + player.dir nehmen wobei player.dir einen wert von -1 und +1 haben solle.
ich hoffe du weißt wie ich das meine, wenn nicht:
Delphi-Quellcode:
if (X-1 < TGegenstand(Sprite).X - Step) then
begin
X := X - Step;
cangoright := false;
end;
if (X+1 > TGegenstand(Sprite).X + Step) then
begin
X := X + Step;
cangoleft := false;
end;
du musst einfach nur einen fehlt vor bzw. zurück schauen