![]() |
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) |
Re: Flackern bei 2d-Animationen
Doublebuffering
|
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;
|
Re: Flackern bei 2d-Animationen
Zitat:
|
Re: Flackern bei 2d-Animationen
Die Umstellung hat überhaupt nichts bewirkt! Aber trotz dem Danke!
|
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ß!
|
Re: Flackern bei 2d-Animationen
Liste der Anhänge anzeigen (Anzahl: 1)
Sory Ich hol's schnell nach. :coder:
|
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. |
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 ![]() Ein Demo findest du zB. hier: ![]() |
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