DelphiX-Tutorial für Anfänger
Ursprünglich erstellt von MiGa Mail Homepage
(Danke!!)
Design-Anpassung und Veränderung von Simon
Kapitel 4
Animationen
Um eine Animation zu erstellen, benötigen wir erst ein Bild,
genauer gesagt mehrere Bilder, da es ja eine Animation ist
:). Gut, also wie müssen die Bilder aufgebaut sein? DelphiX macht
es recht einfach, mit Animationen umzugehen. Es müssen nicht viele
Bilder sein, sonder alle Animationsschritte können in einer Bild
Datei sein. Das ganz sieht dann so aus:

Die Felder müssen alle die gleiche Breite haben, damit die
Animation richtig läuft.
Als Komponenten brauchen wir diesmal
wieder eine DXDraw Fläche, die DXImageList , DXTimer und die
DXSpriteEngine Komponenten. Sie müssen wieder dran denken, dass die
DXDraw Eigenschaften in den Komponenten wieder auf DXDraw1
weisen. In die DXImageList laden wir unser Animationsbild. Da wir
wollen, dass die Bilder nacheinander angezeigt werden, müssen wir
festlegen, wie breit ein Animationsbild ist. Das können wir mit
Hilfe der PatterWidth Eigenschaft des Bildes in der
DXImageList. Als nächstes machen wir einen neuen Objekttyp der
Abstammung TImageSprite. Das sollte dann so aussehen: public
{ Public-Deklarationen}
end;
TAnimation = class(TImageSprite);
var
Form1: TForm1;
Animation: TAnimation;
Implementation
Dann gehen wir in das Form.Create Ereignis und schreiben
folgendes: procedure TForm1.FormCreate(Sender: TObject);
begin
Animation := TAnimation.Create(DXSpriteEngine1.Engine);
Animation.Image := Form1.DXImageList1.Items.Find('1');
Animation.X := 0;
Animation.Y := 0;
Animation.Width := Animation.Image.Width;
Animation.Height := Animation.Image.Height;
Animation.AnimCount := 5;
Animation.AnimLooped := True;
Animation.AnimSpeed := 20/1000;
Animation.AnimStart := 0;
end;
Zuerst wir das neue Objekt erstellt (create-Anweisung). Die
Zweite Zeile ist etwas anders als wir sonst Bilder geladen haben.
Diese find(name) Anweisung ist besser zu benutzen, da wir uns nicht
mehr die einzelnen Item Zahlen merken müssen, sondern nur die Namen
die wir den Bilder gegeben haben (in diesem Beispiel heißt das
Bild"1"). Die nächsten 4 Zeilen sind wieder Standart Anweisungen.
Sie bestimmen die X,Y- Werte und die Größe des Bildes. Die
letzten vier Anweisungen sind für unsere Animation
wichtig. AnimCount bedeutet, dass wir insgesamt 5 Bilder in
der Animation haben. AnimLooped heißt das die Animation
wieder neu anfängt, wenn alle Bilder durch sind.
AnimSpeed (N/1000) ist die Zahl der Framewechsel in einer
Sekunde. AnimStart bedeutet, dass die Animation mit dem 1. Bild
(1.Bild = 0 !) beginnt.
Als letztes schreiben wir in die
DXTimer.OnTimer Eigenschaft: procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXSpriteEngine1.Move(1);
DXDraw1.Surface.Fill(0);
DXSpriteEngine1.Draw;
DXDraw1.Flip;
end;
Die erste Anweisung bedeutet, das alle Sprites in der
DXSpriteEngine bewegt werden. Als nächstes wird der Hintergrund der
DXDraw-Oberfläche mit der Farbe Schwarz gefüllt. Die Draw Anweisung
bedeutet, dass alle Bilder angezeigt werden. Flip müsste jetzt
bekannt sein.
Nun müssen sie nur noch F9 drücken und können ihre Animation
bewundern.
<<Vorheriges
Kapitel>> <<Nächstes
Kapitel>>
|