Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Flackern bei 2d-Animationen (https://www.delphipraxis.net/80485-flackern-bei-2d-animationen.html)

Flo.Hoe 9. Nov 2006 16:26


Flackern bei 2d-Animationen
 
Liste der Anhänge anzeigen (Anzahl: 1)
In meinem vorliegenden Programm soll der Spieler
einen ball davon abhalten, die Spielfläche zu verlassen.
Dabei bewegt er zwei Balken gleichzeitig
auf der Horizontalen (mit Mausrad).
Trift der Ball neben einen Balken und entwischt,
gilt das Spiel als verloren.

Bei der Animation des Balles wird euch ein Flackern Auffallen.
Kann mir jemand sagen, wie ich das unterbinden kann?

(Projekt und exe im Anhang)

mkinzler 9. Nov 2006 16:27

Re: Flackern bei 2d-Animationen
 
Doublebuffering

Balu der Bär 9. Nov 2006 16:33

Re: Flackern bei 2d-Animationen
 
Was mkinzler dir mit diesem Wortfetzen höchstwahrscheinlich sagen will ist, dass du DoubleBuffered von deinem Formular auf true setzen könntest, sprich:
Delphi-Quellcode:
Form.DoubleBuffered := true;

mkinzler 9. Nov 2006 16:34

Re: Flackern bei 2d-Animationen
 
Zitat:

Zitat von Balu der Bär
Was mkinzler dir mit diesem Wortfetzen höchstwahrscheinlich sagen will ist, dass du DoubleBuffered von deinem Formular auf true setzen könntest, sprich:
Delphi-Quellcode:
Form.DoubleBuffered := true;

Ja das wollte ich mich mit diesem "Wortfetzten" sagen. :-D

Flo.Hoe 9. Nov 2006 18:20

Re: Flackern bei 2d-Animationen
 
Die Umstellung hat überhaupt nichts bewirkt! Aber trotz dem Danke!

Cöster 9. Nov 2006 19:03

Re: Flackern bei 2d-Animationen
 
Die .pas-Datei befindet sich nicht im Anhang. Wenn wir deinen Quelltext nicht sehen, können wir nur raten. Das tu ich jetzt auch mal: Timer-Intervall zu groß!

Flo.Hoe 10. Nov 2006 21:24

Re: Flackern bei 2d-Animationen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sory Ich hol's schnell nach. :coder:

Cöster 10. Nov 2006 21:55

Re: Flackern bei 2d-Animationen
 
Also:

1. Timer-Intervall zu hoch. Stell es von 80 auf ca 20 runter. Der Mensch kann 50 Bilder pro Sekunde wahrnehmen, du zeigst ihm nur 12,5. Dann musst du natürlich auch die Positionsänderung pro Timer-Aufruf verringern.
2. Du verschiebst Images. Das ist nicht zu empfehlen (wegen des Flackerns). Du kannst stattdessen den Ball auf das Canvas einer PaintBox malen. Dafür gibt es die Methode Ellipse.
3. Falls es dann noch flackern sollte: DoubleBufferd im FormCreate auf True setzen.

turboPASCAL 11. Nov 2006 07:08

Re: Flackern bei 2d-Animationen
 
Hm, ja.... Du arbeitest mit 3 TImages (Ball und die zwei Schläger). Imagekomponenten sind eigentlich
nicht dazu gedacht flinke "Animationen" zu erstellen. Die TImage-Komponente ist zum darstellen von
Bildern verschiedener Art entwickelt worden.

Du solltest mit einem Hier im Forum suchenOffscreenBitmap arbeiten.

Ein Demo findest du zB. hier: Simple Pong ( The Retro Game :mrgreen: )


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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