Es kommt ganz drauf an, was für ein Sprite du meinst.
Prinzipiell deklarierst du erstmal einen Buffer (TBitmap). Die Variable deklarierst du global oder als Teil des Formulars. Dann musst du den Buffer noch initialisieren und später auch wieder freigeben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure OnCreateVonForm1(...); begin Buffer := TBitmap.Create; Buffer.Width := Form1.Width; Buffer.Height := Form1.Height; end;
procedure OnDestroyVonForm1(...); begin Buffer.Free; end; |
Dann setzt du noch einen Timer auf dein Formular und machst in desssen OnTimer-Prozedur folgendes:
1. ein einfarbiges Rechteck (in den Dimensionen des Buffers) auf den Canvas des Buffers zeichnen, sprich den Buffer per Canvas.Rectangle mit einer Farbe füllen
2. dein Sprite auf den Canvas des Buffers zeichnen (bedenke immer nur ein Bild des Sprites zu zeichnen, nicht die ganze Animation auf einmal)
3. den Buffer auf das Formular zeichnen, sprich Form1.Canvas.Draw(0, 0, Buffer)
Das ganze nennt sich DoubleBuffering und verhindert, dass dein Sprite beim Zeichnen flackert.
Zusatz:
Für dein Sprite brauchst du natürlich auch eine TBitmap-Variable und musst diese ebenfalls in OnCreate initialisieren:
Delphi-Quelltext
1: 2:
| Sprite := TBitmap.Create; Sprite.LoadFromFile('dateiname.bmp'); |
und ebenfalls in OnDestroy freigeben:
Delphi-Quelltext
Moderiert von
tommie-lie: Delphi-Tags hinzugefügt