Screen bleibt schwarz

Anfängerfragen zum Programmieren mit PureBasic.
Rockmaster
Beiträge: 105
Registriert: 28.04.2006 22:19

Screen bleibt schwarz

Beitrag von Rockmaster »

Hi Leute ich hab ein Problem.
und zwar hab ich mal ein kleines test-Programm geschreiben welches einfach nur einen Screen erstellt der sich auf Escape automatisch schließt
Quellcode:

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"test")
Repeat 
ClearScreen(255,255,255)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf 
ForEver

Mein Problem ist jetzt das der Screen nicht mit weiß sondern mit schwarz gecleant wird!
Hab ich einen Fehler oder woram liegt das?
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Du hast FlipBuffers() vergessen .
Rockmaster
Beiträge: 105
Registriert: 28.04.2006 22:19

Beitrag von Rockmaster »

Ich kenn den befehl aber ich dachte der wäre nicht nötig...
was heißt eigentlich "Buffers flippen"?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Du hast den Befehl FlipBuffers() vergessen!

Code: Alles auswählen

InitSprite() 
InitKeyboard() 
OpenScreen(800,600,32,"test") 
Repeat 
ClearScreen(255,255,255) 


FlipBuffers() ; <---- am Ende der repeat-Schleife immer ausführen!

ExamineKeyboard() 
If KeyboardPushed(#PB_Key_Escape) 
End 
EndIf 
ForEver 
Schau mal in die Hilfe, wozu das genau ist. Soviel kann ich dir jetzt schon safgen: Stell dir vor, wir sitzen uns gegenübr, ein Blatt Papier steht senkrecht zwischen uns. Das Papier ist der OpenScreen() Wenn du mit StartDrawing() oder so malst, dann malst du auf deine Seite. Ich als User kann aber wie in deinem Code nichts sehen, denn du hast vergessen, mit Hilfe des Befhels FlipBufers() das Blatt umzudrehen. Richtig, mit dem Befehl drehst du quasi das Blatt um, und währe ich es mir anschaue, malst du schon wieder weiter, weil die Repeat-Schleife ja wieder durchläuft.

In PB sieht das ganze so aus:

Code: Alles auswählen

Repeat

;
;
; Hier malen, während der User sich noch das "alte" Bild anschaut...
;



FlipBuffers()
;
; Hier das alte Bild löschen und das neue, oben gemalte Bild anzeigen lassen...

Forever
Ich hoffe, das hast du so verstanden.

Edit: Mist, da war einer schneller als ich. :-)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Rockmaster
Beiträge: 105
Registriert: 28.04.2006 22:19

Beitrag von Rockmaster »

aso...
jetzt hab ichs verstanden!
Danke leute!
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Das Beispiel mit dem Blatt ist echt gut!
Das merk ich mir.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Danke Macros!
Bitte Rockmaster!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten