Warum Flackert mein Spiel?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

black_hunter

Betreff: Warum Flackert mein Spiel?

BeitragDi, Jan 10, 2006 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich habe ein spiel geschrieben, aber es flackert manchmal, wisst ihr vieleicht warum?, wie könnte man es verhindern?

ich danke euch schonmal Laughing

MFG Markus
  • Zuletzt bearbeitet von black_hunter am Di, Jan 10, 2006 12:49, insgesamt einmal bearbeitet
 

Antsan

BeitragDi, Jan 10, 2006 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu gibt es Backbuffering.
Das funktioniert ungefähr so: Alles was du tust wird auf dem sogenannten BackBuffer getan, also wird nicht angezeigt. Wenn dann alles getan wurde sorgst du dafür, dass das jetzt gezeichnete Zeugs gegen das gerade sichtbare ausgetauscht wird, das heißt alles im Backbuffer wird gegen den Frontbuffer (den sichtbaren) ausgetauscht. Das heißt allerdings auch, dass jetzt im Backbuffer das alte Bild ist und im Frontbuffer das neue. Deswegen muss der Backbuffer dann auch gelöscht werden.


Das geschieht wie folgt:

Mit " SetBuffer BackBuffer() " legst du fest, dass der Backbuffer verwendet wird.
Mit " Flip " tauschst du am Ende dessen, was du tust, den Frontbuffer gegen den Backbuffer aus.
Was du wahrscheinlich schon weißt: Mit "Cls" kannst du den Backbuffer dann löschen, denn jegliche Grafik wird auf dem Backbuffer berechnet.

Wenn du wieder auf dem Frontzbuffer (warum auch immer) zeichen möchtest tauschst du das "BackBuffer()" im ersten der obigen Befehle einfach gegen ein "FrontBuffer()"aus.
 

black_hunter

BeitragDi, Jan 10, 2006 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir für die schnelle antwort,
ich benutze immer nur dieser eine befehl SetBuffer BackBuffer(),

ich werde es mal ausprobieren, und danke nochmals Laughing

markus
 

David

BeitragDi, Jan 10, 2006 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

@Antsan:
Fast richtig. Die Daten werden nicht zwischen Back- und Frontbuffer geswapt sondern die Speicheradressen werden getauscht. Andernfalls würde der ganze Blitvorgang viel zu lange dauern.

@Topic:
Möglicherweise hast du aber auch VSync ausgeschaltet. Dann kommt es manchmal zu Bildfehlern, da sich die Pufferinhalte überschneiden können.

grüße

Goodjee

BeitragDi, Jan 10, 2006 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
oder bau einfach mal zwischen deinen hauptschleifendurchläufen (ich denke, du hast eine hauptschleife, an deren ende geflippt wird) eine kleine pause einzubauen....is zwar wahrscheinlich nicht die eleganteste lösung dafür Delay zu verwenden, aber es funktioniert..... Confused Confused Razz
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Antsan

BeitragMi, Jan 11, 2006 12:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht auch besser mit CreateTimer() und WaitTimer(). Aber ich glaube kaum, dass das Flackern damit was zu tun hat.

Goodjee

BeitragMi, Jan 11, 2006 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
och, bei mir ist das so, ich habe aber auch nen lahmen pc(633 mhz)
wenn ich viele sachen auf den bildschirm male......
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

valera_rus

BeitragMo, Jan 16, 2006 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
schreib mal deinen code rein

Goodjee

BeitragFr, Jan 27, 2006 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, ich habe jetzt auch geflimmer in meinem ersten 3d experiment.....
es huschen immer solche grünen punkte von unten nach oben durchs bild....

liegt das an meinem code( es werden nur 2 objecte, ein würfel und ein sprite gedreht und bewegt) oder an meinem pc????
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Dreamora

BeitragFr, Jan 27, 2006 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn es auf dem Bildschirm flackert, versuchs Mal mit flip 1 / flip true anstatt von flip false / flip 0. Letzteres kann dazu führen, dass immer nur teile des Bildes aktualisiert werden. speziell bei langsameren systemen wirds dann unschön ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group