BB ausgabe funktioniert nicht

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

smatzy

Betreff: BB ausgabe funktioniert nicht

BeitragDi, Okt 11, 2005 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

bin neu hier und habe gleich ein problem,
habe eine eigene eingabe function wo die text ausgabe auch funktioniert aber wenn ich die function verlasse und aus meine schleife springe
kann ich den string den ich habe nicht mehr ausgeben jedenfalls sehe ich nix in der console ! kann mir da jemand helfen ?

BlitzBasic: [AUSKLAPPEN]


Global cursor
Global cursor_time = MilliSecs ()
Global cursor_speed = 250
Global cline$
Global show_con = False
Global a

Function Console ()
If KeyHit (15) Then show_con=1-show_con
If show_con
key = GetKey ()
If key>=32 And key<=255 Then cline$=cline$+Chr (key)
;Backspace
If key=8 And (Len (cline$)-1)>=0 cline$=Left(cline$,Len (cline$)-1)
;Return
; If key=13
If key = 13 Then a=1
If MilliSecs()-cursor_time>cursor_speed
cursor=1-cursor
cursor_time= MilliSecs ()
EndIf
If cursor
x= StringWidth (cline$)
Text x,0,\"_\"
EndIf
Text 0,0,cline$,0,0
EndIf
End Function



Graphics 640,480,0,2
Repeat
Cls
Console ()
Flip
Until a=1
Cls
Text 0,70,cline$ ;<----- Hier gibt mir BB Plus nichts mehr aus
WaitKey
End

d-bug

BeitragDi, Okt 11, 2005 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigenartiger Code aber naja... Wink

Code: [AUSKLAPPEN]
Setbuffer Backbuffer () <-- neu

Cls

Text 0,70,cline$ ;<----- Hier gibt mir BB Plus nichts mehr aus

Flip <-- neu

WaitKey


Weiß jetzt nicht ob das mit B+ funktioniert, da ich mit B+ noch nie etwas gemacht habe... Aber wenn das Doublebuffering bei B+ genau so ist, wie bei allen anderen Versionen, dann sollte es wohl so funktionieren.
 

smatzy

BeitragDi, Okt 11, 2005 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
danke das geht

aber was hast du da eigentlich gemacht ?

d-bug

BeitragDi, Okt 11, 2005 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
mit dem Befehlen ql:Setbuffer ql:Backbuffer() hast du jetzt dafür gesorgt, das der Hintergrund-Buffer als aktueller Buffer festgelegt wurde. Das heißt im Groben, das alle Sachen, die du jetzt zeichnest im Hintergrund gezeichnet werden. (Auch Text)

mit ql:CLS hast du diesen Buffer gelöscht.

mit ql:Text deine Eingabezeile auf den ql:Backbuffer geschrieben

mit ql:flip hast du nun die Buffer getauscht, also dafür gesorgt, das der Hintergrund-Buffer zum angezeigten Vordergrund-Buffer wird.

Du solltest mal ein paar Tutorials zu Blitzbasic lesen, denn dein Code weist sehr viel Anfänger-Probleme auf Wink. Außerdem ist Doublebuffering (so nennt man das was ich dir beschrieben habe) extrem wichtig. Man sollte sich unbedingt damit vertraut machen.

Dein Problem wahr nämlich, daß du immer schön die Buffer geflipt hast und beim beenden der Repeat-Schleife dein Programm im Backbuffer hängen geblieben ist. Also zwar die Zeile geschrieben wurde, aber eben in einen unsichtbaren Bereich.

Sehr zu empfehlen ist auch die Online-Hilfe... mir hat sie jedenfalls sehr gut geholfen.

Triton

BeitragDi, Okt 11, 2005 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mal das syntax-tag richtig gesetzt und den code ein bsichen formatiert...
Coding: silizium-net.de | Portfolio: Triton.ch.vu

d-bug

BeitragDi, Okt 11, 2005 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
danke Triton, jetzt erkennt man wenigstens auch was Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group