'n Abend,
On Monday, 28. January 2002 14:54, Torsten Werner wrote:
ich habe mittels qt ein Programm geschrieben, dass eine Animation mit sekundenweisen Updates zeichnet. Damit die Animation flüssiger wird, möchte ich die Framerate erhöhen, aber wie mache ich das, ohne dass es wie verrückt flimmert? Gibt es ein passendes Widget dafür oder brauche ich eine zusätzliche Bibliothek? Wenn ja, welche?
Du hast nicht geschrieben was du verwendest. Wie man Flimmern wegbekommt, ist Urschleim: Double-Buffering, in Qt z.B. dadurch realisierbar daß man zuerst in ein Pixmap malt und dieses dann schnell auf das Widget aufbringt.
Für Animationen ist QCanvas geeignet, und in letzter Zeit nehme ich QCanvas fast ausschließlich wenn es um schnellere Animationen geht. Nur mit Alpha-Kanälen gibt es da Probleme (QCanvasPixmap ist von QPixmap abgeleitet, was im Gegensatz zu QImage nur alpha = {0, 1} kennt). Außerdem ist QCanvas nicht für Animationen von etwa > 50 Objekten geeignet.
Die Framerate kann man mit QTimer und/oder QCanvas::setAdvancePeriod() kontrollieren.
Bei-Spiele gibt's zuhauf, z.B. bei mir im CVS das Spiel 'relokate': http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mindx/
Josef Spillner