Flackern von Grafiken verhindern
-
Falls ihr mit dem BCB6 arbeitet solltet ihr auch mal einen Blick auf EarthPong unter \examples\games werfen.
-
Jansen schrieb:
Falls ihr mit dem BCB6 arbeitet solltet ihr auch mal einen Blick auf EarthPong unter \examples\games werfen.
Hi
Nein, wir arbeiten leider noch mit Bcb5 da ist zwar auch das Spiel dabei aber
etwas komisch Programmiert, ich blicke da nicht richtig durch.Zu akari: ich werde das mal probieren aber so eine direkte vorstellung habe
ich nicht wie du das meinstdanke schonmal
-
akari schrieb:
ihr könnt einfach das Zeichnen erstmal auf ein internes unsichtbares TBitmap auslagern, und dann wenn ein Zeichnenvorgang fertig ist, dieses Bitmap mit einem Mal auf dem sichtbaren Control ausgeben.
Ich sehe da keinen Vorteil: Was bringt es ihm, DoubleBuffering aufwendig nach zu programmieren, wenn die bereits (gut) implementierte Version der VCL schon nicht funktioniert?
-
hmm, wieso den timer? macht doch mit mousemove oder mit den api mouse dingern
-
Ja so mein ich das ja nicht. Die Maus läuft ja über die eingebaute Funktion on mouse move.
Es ist nur so das der Ball bei PingPong sich da über nen Timer bewegt und wenn man dann doublebuffered anmacht und die Maus bewegt stoppt der Ball also der Timer über der der läuft
-
Najo diese Frage hatte ich auch bereist
DoubleBuffered = true;
Dann sollte es fluppen ^^
-
Gast|nOnAmE schrieb:
Najo diese Frage hatte ich auch bereist
DoubleBuffered = true;
Dann sollte es fluppen ^^
Hast du dir den Fragepost überhaupt durchgelesen?
-
Mit dem ganz normalen Timer ist das Verhalten ganz normal, weil der über die Messagequeue von Windows läuft, d.h. Mausbewgeungen, Fensterverschieben, etc. verhindern, daß der Timerevent ausgeführt wird. Wenn Du Deinen Ball unbeeinflußt fliegen lassen willst darfst Du keinen Timer benutzen. Hast Du Dir Threads schonmal angeschaut?
-
MichelRT schrieb:
Mit dem ganz normalen Timer ist das Verhalten ganz normal, weil der über die Messagequeue von Windows läuft, d.h. Mausbewgeungen, Fensterverschieben, etc. verhindern, daß der Timerevent ausgeführt wird. Wenn Du Deinen Ball unbeeinflußt fliegen lassen willst darfst Du keinen Timer benutzen. Hast Du Dir Threads schonmal angeschaut?
Hey, jo ich hab mich mal über Threads kundig gemacht naja hab es zumindest versucht aber ich verstehe das überhaupt nicht wie das funzen soll
^^
-
Da zeichnen der Spielfläache wird nicht mittels Timer gemacht, sondern der Thread zeichnet die in bestimmten Zeitabständen auf den Canvas des Spielfensters.
CBuilder6\Examples\Apps\Threads
ist ein Beispiel