![]() |
Brauche Hilfe bei einer Gehanimation!
Alsooo, ich sitze da jetzt schon länger dran und ich komm mir langsam echt dumm vor xD Und zwar möchte ich ein Jump'n Run machen, aber das Problem ist, dass ich die Gehanimation nicht hinkrieg :x Es soll einmal alle Bilder abspielen, wenn man sich bewegt und zwar in einer Geschwindigkeit bei der man alle Bilder sehen kann. Und das soll sich so lange abspielen, so lange man rechtsbzw. links drückt. Aber Ich krieg das irgendwie einfach nicht hin -.- Habs auch schon mit nem Timer versucht, bin dann aber durcheinander gekommen -.-
Danke im vorraus :) |
AW: Brauche Hilfe bei einer Gehanimation!
Wo liegt denn genau das Problem?
Dsa was Du schilderst ist recht allgemein beschrieben. Hast Du Fehler? Läuft die Animation falsch ab? zu schnell/zu langsam? Was genau klappt nicht? |
AW: Brauche Hilfe bei einer Gehanimation!
Wenn ich laufe, wechselt er sofort zum letzten bild (es spielt alle bilder zu schnell ab und deswegen sieht man nur das letze) anstatt alle bilder einzelnt durchzugehen. Und bei dem Bild bleibt er dann die ganze Zeit.
|
AW: Brauche Hilfe bei einer Gehanimation!
Ohne daß wir wissen wie du was machst, können wir dir nicht sagen was du falsch machst :zwinker:
|
AW: Brauche Hilfe bei einer Gehanimation!
Zeig mal den Code, den du nutzt. Und die Geschwindigkeit des Timers wäre auch interessant zu wissen :)
|
AW: Brauche Hilfe bei einer Gehanimation!
Würde dir empfehlen, mal die Andorra 2D Engine anzuschauen. Findest du hier im Forum auch massig Beiträge dazu, auch Hilfen, Beispiele, Demos, ... Und da ist auch ein Demo dabei, was genau dein Problem anspricht.
|
AW: Brauche Hilfe bei einer Gehanimation!
Aus wieviel Bilder besteht denn eine Bewegungssequenz?
Du musst ja für jeden einzelnen Schritt deines Männchens das Bewegungsbild ändern. Die Sequenz also schrittweise durchlaufen lassen und dann wieder von vorn beginnen. So wie Du das erläuterst, klingt das fast wie ein animiertes GIF was du nutzt. |
AW: Brauche Hilfe bei einer Gehanimation!
Zitat:
Pseudocode
Code:
Während der Routine wird aber die Anzeige nicht aktualisiert, darum sieht es so aus, als ob die Figur nicht animiert wird ;)
Routine Animieren
Für jedes Bild Zeige Bild Eine Möglichkeit wäre die Animation über einen Timer gesteuert zu realisieren.
Code:
Wenn es vernünftig werden soll führt allerdings der Weg zu Andorra :)
Routine AnimationsTimer
Figur.EinenSchrittWeiter Figur.MaleBildZumSchritt |
AW: Brauche Hilfe bei einer Gehanimation!
Also bisher sieht mein Code so aus (nicht wirklich viel :lol:)
Delphi-Quellcode:
Und das mit Andorra versteh ich nicht. Wie benutze ich Andorra?
var
movex,movey : integer; procedure TForm1.FormCreate(Sender: TObject); //Einstellungen und Koordinaten begin form1.DoubleBuffered :=true; movex := 1; movey := 225; end; procedure TForm1.Gehen(Sender: TObject); //Gehen begin Timer2.Enabled := true end; procedure TForm1.Timer2Timer(Sender: TObject); begin Player.Picture.LoadFromFile('.\Graphiken\Charanimation1.ico'); Player.Picture.LoadFromFile('.\Graphiken\Charanimation2.ico'); Player.Picture.LoadFromFile('.\Graphiken\Charanimation3.ico'); end; procedure Char; begin Form1.Player.left := moveX; Form1.Player.top := moveY; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var I: Integer; begin if (key = 40) then moveY := moveY+5;// runter if (key = 38) then movey := moveY-5;// hoch if (key = 37) then movex := moveX-5;// links if (key = 39) then movex := moveX+5;// rechts if (key = 39) then Timer2.Enabled := true; Char; end; end. |
AW: Brauche Hilfe bei einer Gehanimation!
Zitat:
Versuchs mal so:
Delphi-Quellcode:
var
movex,movey, AniIndex : integer; procedure TForm1.FormCreate(Sender: TObject); //Einstellungen und Koordinaten begin form1.DoubleBuffered :=true; movex := 1; movey := 225; AniIndex := 0; Timer2.Interval := 125; end; procedure TForm1.Timer2Timer(Sender: TObject); begin Timer2.Enabled := FALSE; Player.Picture.LoadFromFile('.\Graphiken\Charanimation' + IntToStr(AniIndex + 1) + '.ico'); Inc(AniIndex); if AniIndex > 2 then AniIndex := 0; Timer2.Enabled := TRUE; end; Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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