Hallo zusammen!
Ich möchte ein 2D Spielchen schreiben. Dazu will ich im Programm zwischen Vollbild und WindowMode wechseln (per Tastendruck). Ist dies möglich? Wenn ja, wie stell ich dies an?
Viele Grüße,
Aaron
Zwischen Vollbild und WindowMode "on the fly" wechseln
-
- Beiträge: 11
- Registriert: 13.01.2011 23:51
Re: Zwischen Vollbild und WindowMode "on the fly" wechseln
Kommt darauf an.
Wenn das Spiel relativ wenig Resourcen verbraucht, kannst du den WindowedScreen mit Autostretch-Flag erstellen und per Tastendruck die Größe des Fensters verändern.
Ansonsten hilft nur CloseScreen und Open(Windowed)Screen. Dadurch wird das Spiel einige Sekunden unterbrochen, da sämtliche Resourcen (Sprites, Sounds) erst wieder geladen werden müssen.
Wenn das Spiel relativ wenig Resourcen verbraucht, kannst du den WindowedScreen mit Autostretch-Flag erstellen und per Tastendruck die Größe des Fensters verändern.
Ansonsten hilft nur CloseScreen und Open(Windowed)Screen. Dadurch wird das Spiel einige Sekunden unterbrochen, da sämtliche Resourcen (Sprites, Sounds) erst wieder geladen werden müssen.
Re: Zwischen Vollbild und WindowMode "on the fly" wechseln
Vielleicht ist dieser Code hilfreich: http://www.purebasic-lounge.com/viewtopic.php?t=6282
-
- Beiträge: 11
- Registriert: 13.01.2011 23:51
Re: Zwischen Vollbild und WindowMode "on the fly" wechseln
Ich hab das mal ausprobiert, leider flackert das ganze ziemlich, wenn ich "f" drücke. Es scheint so als wolle er ständig zwischen Window und Fullscreen wechseln. Hab ich da was beim Input handling falsch verstanden?
Code: Alles auswählen
If OpenWindow(0, 0, 0, 800, 600, title, #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
EndIf
Repeat
; Event loop
Repeat
event = WindowEvent()
Until event = 0
; Handle input
ExamineKeyboard()
If KeyboardPushed(#PB_Key_F)
CloseScreen()
If fullscreen = 0
OpenScreen(800, 600, 32, title)
fullscreen = 1
Else
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
fullscreen = 0
EndIf
EndIf
; Draw the stuff on the screen
FlipBuffers()
ClearScreen(RGB(0, 200, 0))
DrawOnScreen()
Delay(1)
Until KeyboardPushed(#PB_Key_Escape)
EndIf
Re: Zwischen Vollbild und WindowMode "on the fly" wechseln
Benutze anstatt KeyboardPushed(#PB_Key_F) besser KeyboardReleased(#PB_Key_F).
KeyboardPushed() gibt solange True zurück, wie du den Finger auf der Taste hast. In der Zeit kann man schon mal etliche Operationen ausführen, die dann eben mehrfach ausgeführt werden.
Wenn's blöd läuft ist die Anzahl gerade und man landet beim gleichen ScreenModus wie vorher
KeyboardPushed() gibt solange True zurück, wie du den Finger auf der Taste hast. In der Zeit kann man schon mal etliche Operationen ausführen, die dann eben mehrfach ausgeführt werden.
Wenn's blöd läuft ist die Anzahl gerade und man landet beim gleichen ScreenModus wie vorher

-
- Beiträge: 11
- Registriert: 13.01.2011 23:51
Re: Zwischen Vollbild und WindowMode "on the fly" wechseln
Prima, daran hats gelegen. Danke!