Delphi-Quellcode:
if (Player.richtung >= 360)
then
Dec(Player.richtung, 360);
if (Player.richtung < 0)
then
Inc(Player.richtung, 360);
if KEY = VK_LEFT
then Player.richtung:=Player.richtung-10;
if KEY = VK_RIGHT
then Player.richtung:=Player.richtung+10;
if KEY = VK_UP
then begin
player.X :=round(Player.X+(Sin(player.richtung)*Player.Geschwindigkeit
{oder so}));
player.Y :=round(player.Y+(Cos(player.richtung)*Player.Geschwindigkeit
{oder was Du eben hast}));
end;
So würde ich das machen.
Und es kann angehen das der Drehwinkel nicht in in 360 Grad eingeteilt wird, sondern in 2*PI. Sprich 180° = PI und 360° = 2*PI. Um dann den korrekten Drehwinkel rauszukriegen musst Du rechnen:
winkel := (winkel/180)*PI;
Dann sollte das klappen.