![]() |
[Andorra 2d] Animation
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:
bzw. über KeyUp gestoppt:
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;
Delphi-Quellcode:
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.
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; |
Re: [Andorra 2d] Animation
schau dir einemal die "Wormhunter" Demo an, die wird bestimmt helfen.
kann es sein das du das vergessen hast??
Delphi-Quellcode:
if (Key=VK_LEFT) then
begin XMove:=-150; Figur.AnimStart:=3; Figur.AnimStop:=4; mundungx:=Figur.X; //+19 ??? mundungy:=Figur.Y+20; |
Re: [Andorra 2d] Animation
Hat nicht direkt mit dem Problem zu tun, aber ich würde eine case-Abfrage verwenden.
|
Re: [Andorra 2d] Animation
Danke, werd ich gleich mal machen, werde berichten sobald ich den Fehler hab, leider ist Wormhunter etwas anders aufgebaut, werd trotzdem mal schauen. Nee das mundungx und mundungy bezieht sich auf die Stelle an der die "Projektile" meine Figur verlassen und da die je nach Bewegungsrichtung anders ist passt das schon. :)
Edit: Jo Case ist wohl besser, bin noch im frühen Stadium des Codes, werds verändern. Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz