Tearing Beispiel

Übersicht BlitzBasic Codearchiv

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Sep 22, 2005 0:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur mal so ne Frage... Warum muß überhaupt der eine Buffer zum anderem Buffer KOPIERT werden? Dauert das nicht zu lange? Nagut mit 'Assemblers: LEA?!?' gehts vielleicht auch schnell. Kann man nicht einfach die Lesepointer und Schreibpointer umzustellen?

@walski, Kann man nicht folgendes anwenden?
YAPos=AktuelleYPositionAbfragen
If YAPos+YAPos-YBPos>768 Then YBPos=YBPos-768:Flipen Else YBPos=YAPos

[EDIT] Die Fehlerquote durch die 'Zukunftsberechnung' dürfte gering ausfallen... Nur dann auftretten, wenn die Rechendauer stark zu/ab-nimmt.
 

walski

Ehemaliger Admin

BeitragDo, Sep 22, 2005 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, damit nähert man sich natürlich dem Zeilensprung theoretisch an, in der Praxis wird das meiner Meinung nach aber nicht hinhauen, da keine Konstanz der benötigten Zeit pro Gameloop vorherrscht.

Ach, ich hab keine Ahnung, in BB lässt sich das sowieso nur total doof realisieren, da ist Flip 1 wohl immernoch am tollsten Wink

Und zum Thema kopieren: Man kann natürlich den Backbuffer1 und Backbuffer2 einfach per Referenz tauschen.
Der Frontbuffer müsste aber kopiert werden.

Thorben
buh!

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Sep 22, 2005 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, der Frontbuffer ist also fest. Die Grafikkarte kann nicht einfach auf ein anderen Speicherbereich umgelenkt werden. Dachte weil bei meinem altem Power-Basic gab es verschiedene Bildschirmmodie u.a. Screen 7 (640*480*4 (also 16 Farben)). Bei Modus 7 hatte man noch die Möglichkeit zwei weitere Parameter 0-3 anzugeben. Der erste (ich glaub) welchen Bildschirm man sehen wollte, und der zweite auf welchem Bildschirm man zeichnen wollte. Ein Flip musste man sich dann selber mit Variablen basteln... Bei sehr schnellen Bildschirmausgaben hatte man die besten Erfolge, wenn man alle vier Bildschirme benutzte und immer das Bild hinter dem was man gerade sieht zeichnete. Sowas wie Quattro-Buffer, wenn ich das richtig verstanden habe. Hier ein Beispiel mit drei Bildschirmen:BlitzBasic: [AUSKLAPPEN]
While inkey$=\"\"
sc%=sc%+1
If sc%=1 Then screen 7,,1,0
If sc%=2 Then screen 7,,2,1
If sc%=3 Then screen 7,,0,2:sc%=0
Cls
Wend

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group