Hallo,
ich schreibe derzeit ein kleines Spiel für Andorra bei welchem man eine kleine Figur über den Bildschirm in alle 4 Richtungen bewegen kann. Meine Kleine Figur besteht bis jetzt aus 7 Pattern, 0 für stilles Stehen, Pattern 1 und 2 für nach rechts, Pattern 3 und 4 für nach links und Pattern 5 und 6 für nach unten Laufen. Die Animationen werden nun so aktiviert:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_RIGHT) then
begin
XMove:=150;
Figur.AnimStart:=1;
Figur.AnimStop:=2;
mundungx:=Figur.X+19;
mundungy:=Figur.Y+20;
end;
if (Key=VK_LEFT) then
begin
XMove:=-150;
Figur.AnimStart:=3;
Figur.AnimStop:=4;
mundungx:=Figur.X;
mundungy:=Figur.Y+20;
end;
if (Key=VK_UP) then Ymove:=-150;
if (KEY=VK_DOWN) then
begin
Ymove:=150;
Figur.Animstart:=5;
Figur.Animstop:=6;
mundungx:=Figur.X+2;
mundungy:=Figur.Y+29;
end;
bzw. über KeyUp gestoppt:
Delphi-Quellcode:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_Right) or (Key=VK_Left)then
begin
Xmove:=0;
Figur.Animstart:=0;
Figur.AnimStop:=0;
end;
if (Key=VK_UP) or (KEY=VK_DOWN) then
begin
Ymove:=0;
Figur.Animstart:=0;
Figur.AnimStop:=0;
end
end;
Wenn man nach rechts läuft, funktioniert die Animation wie gedacht. Wenn man nun aber nach links läuft, läuft komischerweise kurzzeitige die Animation für nach rechts laufen ab und wenn man nach unten läuft erst die Animation für nach Rechts dann für nach Links und dann erst für nach unten laufen ab. Andorra scheint also erst die Pattern von 0 bis xx abzuspielen bevor es die richtige AnimStart Pattern abspielt. Ich hoffe ihr versteht mein Problem und hab eine mögliche Lösung.