Probleme mit CLS
Übersicht

![]() |
RollingStoneBetreff: Probleme mit CLS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich bin völlig neu im BlitzBasic-Genre und arbeite mich gerade durch ein paar Englische Tutorials durch. Da ich Perfektionist bin, versuche ich während den Tutorials immer alles zu verstehen und zu lösen. Hänge gerade an folgender Sache: Code: [AUSKLAPPEN] Graphics 800,600,0 'Set graphics mode Local W:Int W = 1 Repeat DrawRect 0,40,W,12' Let's change the width of the box instead DrawText "- Please Wait -",0,0 DrawText "Width = "+W,0,20 W:+3 Flip;Cls Until W > 400 Plot 1,1 'Draws a pixel in the top left corner. Try 1,1 too Plot 500,50 'Draws a pixel at location 400,40, Read: plot at X:400, Y:40 DrawLine 40,40,80,80 ;DrawLine 40,40,40,200 Flip;Cls WaitKey Der Schleifendurchlauf funzt und der Ladebalken wird korrekt durchlaufen. Der Code nach der Schleife soll natürlich nur einmal ausgeführt werden, alles andere wäre Ressourcenverschwendung. Doch habe nun das Problem, dass wenn ich die Zeichenaufträge per Flip aus dem Buffer zeichnen lasse, die vorherigen Zeichenaufträge (also der Ladebalken!) verschwinden! Nehme ich jetzt das ";Cls" in der Schleife weg, wird beim zweiten Flip der Ladebalken nicht gelöscht. Ziel also anscheinend erreicht. Problem nur, dass folgende Zeile jetzt ein Problem bringt: DrawText "Width = "+W,0,20 Der Wert von der Variable W wird während und nach dem Durchlauf nur noch durch weiße Kästchen dargestellt. Man sieht während dem Durchlauf ein weißes Flackern der Buchstaben. Woran liegt denn das? Ganz trivial, dass BM einfach bei der Geschwindigkeit des Schleifendurchlaufs nicht mitkommt? Gruß RS P.S: Wäre nett, wenn man den Thread so stehen lassen könnte. Brauche dann nicht für jede Anfängerfrage einen neuen Thread erstellen. Gewährt die Übersichtlichkeit. ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du kein CLS machst, wird der Bildschirm nicht gelöscht -> das alte wird überzeichnet -> Bei buchstaben gibts den totalen Salat
Sofern du nicht den gesamten Bildschirm übermalst (zb bei Tile Systemen oder Hintergrundbild), musst du CLS benutzen. Um den alten Ladebalken zu erhalten musst du ihn in irgend einer Form während der Schleife zeichnen oder alternativ kein CLS und dafür ein schwarzes Recheck über den bereich des Textes malen vor dem Drawtext EDIT: Künftig bitte sinnvolle Threadtitel nutzen, sonst werden sie, da sie für die Community keinen Nutzen haben, einfach getrasht. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
RollingStone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dreamora hat Folgendes geschrieben: Um den alten Ladebalken zu erhalten musst du ihn in irgend einer Form während der Schleife zeichnen Ja das wird ja bereits gemacht. Siehe Code oben. Wie meinst du das genau? Zitat: alternativ kein CLS und dafür ein schwarzes Recheck über den bereich des Textes malen vor dem Drawtext Ja, verstanden und funktioniert. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
RollingStone hat Folgendes geschrieben: Dreamora hat Folgendes geschrieben:
Um den alten Ladebalken zu erhalten musst du ihn in irgend einer Form während der Schleife zeichnen Ja das wird ja bereits gemacht. Siehe Code oben. Wie meinst du das genau? Machst du eben nicht. Während der Schleife erhöhst du W, zeichnest Text. Aber der Balken wird nicht gezeichnet zwischen CLS und FLIP, das heisst er existiert danach dann halt auch nimmer. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group