Delphi-Quellcode:
procedure TAnimation.DoMove(MoveCount: Integer);
var g:integer;
begin
g:=0;
inherited DoMove(MoveCount);
if g=0 then begin
If isUp in Form1.DXInput1.States Then begin
Y := Y -2;
g:=1;
end;
end;
if g=0 then begin
If isDown in Form1.DXInput1.States Then begin
Y := Y + 2;
g:=1;
end;
end;
if g=0 then begin
If isLeft in Form1.DXInput1.States Then begin
X := X -2;
g:=1;
end;
end;
if g=0 then begin
If isRight in Form1.DXInput1.States Then begin
X := X +2;
g:=1;
end;
end;
end;
Ich kenn mich da zwar nicht so gut aus, aber das wäre eine Lösung, die funktioniert. Obs eine einfachere bzw logischere bzw bessere Lösung gibt, kann ich dir leider nicht beantworten. Doch es ist nur eine schnelle Antwort, damit du nicht so lange warten brauchst, bis eine Bessere kommt und in der Zwischenzeit weiterproggn kannst.