Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
Delphi 3 Professional
|
17. Jun 2002, 11:25
Auch wenn das einiges an Änderungen erfordert: Ich rate dir ab, jegliche Komponenten für die Grafikdarstellung zu verwenden. Lade alle Grafiken in TBitmap-Objekte und zeichne sie direkt auf den Canvas der Form, oder mach eine Paintbox, die über das gesamte (!) Spielfeld geht und zeichne alles dorthinein. TImage etc. sind nicht für sowas gemacht worden. Den Hintergrund zeichnest du einfach in jedem Frame, bevor du die Objekte draufmalst.
Wenn du etwas weniger Änderungen haben willst, kannst du die TImage-Dinger, in denen bereits einige deiner Grafiken sind, auch unsichtbar machen und diese als Quelle für den Zeichenvorgang verwenden.
Alternativ kannst du auch DoubleBuffering verwenden: Erzeuge ein TBitmap-Objekt, und in jedem Frame zeichnest du zunächst den Hintergrund hinein, und dann alle Objekte drauf. Wenn es dir um die Transparenz bei den Objekten geht, musst du entweder direkt mit Scanline arbeiten, oder du zeichnest das Objekt mit TCanvas.BrushCopy(), oder du nimmst eine dieser abgefahrenen BitBlt()-Kombinationen, die wahrscheinlich das schnellste darstellen.
Am Ende zeichnest du die gesamte Bitmap einfach in die Form (oder zur Not auch in deine Paintbox (c; ).
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
|