Von Andorra habe ich zugegebenermaßen keinen Schimmer, aber mir fällt auf, dass Du sehr viel redundaten Code schreibst. Ich habe das KeyPress einmal gekürzt:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #27 then
Close
else if (Key in ['a','w','s','d']) and (Spieler.IsIdle) then
begin
Spieler.FDistance := 40;
Spieler.IsMoving := true;
case Key of
'a': Spieler.RRichtung := Links;
'w': Spieler.RRichtung := Hoch;
'd': Spieler.RRichtung := Rechts;
's': Spieler.RRichtung := Runter;
end;
Application.ProcessMessages;
end;
end;
Schau einmal ob die Zeile mit dem Application.ProcessMessages etwas bringt. Wenn nicht, kannst Du sie wieder löschen.