Backbuffer und Flip
Übersicht

mullBetreff: Backbuffer und Flip |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit dem unterem Code blinkt bei mir der ganze Bildschrirm und es wird nur jeder 2.te Kreis angezeigt. Im Festermodus (Graphics 640,480,0, 2) geht der Code wie man sich das vorstellt.
Warum ? Graphics 640,480,0,1 SetBuffer BackBuffer() Line 0,0,639,349 WaitKey() For I = 1 To 10 Oval 20 * I ,20 * I , 20,20 Flip Delay(400) Next WaitKey |
||
mull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@hot-bit
Die primitive Antwort ist vielleicht besser in deinem privaten Umfeld aufgehoben, wo die Ausdrucksweise entsprechent verstanden und verarbeitet wird. Programmieren ist seit 20 Jahren mein Hobby und da zähl ich mich nicht mehr zu den Anfängern, auch nicht zu den Profis. Es ist bestimmt eine simple Sache, nur ich weiss halt nicht warum. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
pack nen CLS an den anfang der loop.
in 2d musst du immer CLS zeichnen flip wenn du double- oder tripplebuffering ( letzteres nur in Blitz+ möglich ) benutzt |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
mull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, nur das bis dahin gezeichnete ist bei CLS futsch.
Nach einem Flip hat der Backbuffer das Aktuelle Bild des Frontbuffers, daher wird nur jeder 2.te Kreis gezeichnet. Abhilfe würde Setbuffer Fronttbuffer() schaffen. Nur in Blitz+ funktioniert anscheinend der Setbuffer Frontbuffer() Befehl nicht mehr. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Exakt. wäre auch nicht sehr förderlich da du mit setbuffer Frontbuffer() das Doublebuffering untergraben würdest.
Die Lösung für dein Problem wäre es ... EDITED: die Fornext schleife mit einer durch einen Timer der alle xx millisecs anschlägt erhöhten Variable zu versehen, damit nach und nach das nächste Oval kommt. Delay (ein recht "böser" Befehl.. ) wäre dann auch überflüssig. Und wenn sich Hotte auch im Ton vergriffen hat muss ich ihm zustimmen: Die Frage wäre im Beginner wahrscheinlich besser aufgehoben, denn ob Erfahrung mit Coden hin oder her, das hier sind fehlende Grundlagen. (meine 2 ct.) EDIT : bin schon zu müd für den Krempel, hab zuerst Müll geschrieben. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi.
Wollte dasselbe antworten, wie BladeRunner, aber das Forum war down... Benütze die Online-Hilfe, da ist alles super erklärt. Es mag ja sein, daß du fast so lange programmierst wie ich, aber das schützt dich nicht davor, dir die Befehle anzusehen, mit welchen du arbeiten möchtest. Das hat jetzt nichts mit Anmache oder so zu tun, das ist einfach Fakt ! Toni |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
die "Lösung" für dein Problem ist folgendes:
Graphics 640,480,0,3 ist aber Top Secret! ![]() Steht nichtmal in der Onlinehilfe, was dieser Modus bedeutet. Also: normal werden Front- und Backbuffer (es sind auch in B+ zweierlei, obwohl die Variablen FrontBuffer() und BackBuffer() gleich sind) mit einander vertauscht. Also wenn du die Linie draufmalst und dann "flipst", dann ist die Linie im Frontbuffer. Jetzt malst du einen Kreis, flipst wieder und schwups ist die Linie wieder im Backbuffer. Bei Modus 3 allerdings (only B+): hier wird der Backbuffer in den Frontbuffer hineinkopiert. Das was du, wie ich vermute, als standart betrachtest. ... Wie auch immer: hör auf Dreamora! d.h. immer schön cls und neu zeichnen. MfG D2006 |
||
![]() |
Ralf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
dafür braucht man nicht unbedingt BB+, das kann man mit allen BB-Versionen auch manuell machen. Code: [AUSKLAPPEN] Graphics 640,480,0,1
SetBuffer BackBuffer() Line 0,0,639,349 WaitKey() For I = 1 To 10 Oval 20 * I ,20 * I , 20,20 Flip CopyRect 0,0,640,480,0,0,FrontBuffer(),BackBuffer() Delay(400) Next WaitKey Ralf |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, nicht bei allen BB Versionen. Bei B+ geht das wiederum nicht,
da ja die Variablen Frontbuffer() und Backbuffer() den gleichen Wert haben (nämlich den des Backbuffers). Ist ja aber eigentlich auch egal. MfG |
||
mull |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, genau das habe ich gesucht. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group