2014-02-24 12 views
8

Es kann eine dumme Frage, aber es ist ein dummes Problem, dass ich nicht ein Dokument für sie finden kann.Wie kann ich Vollbild-Modus in Pygame verlassen?

Pygame mir diese Flags für display.set.mode gibt():

pygame.FULLSCREEN create a fullscreen display 
pygame.DOUBLEBUF  recommended for HWSURFACE or OPENGL 
pygame.HWSURFACE  hardware accelerated, only in FULLSCREEN 
pygame.OPENGL  create an OpenGL renderable display 
pygame.RESIZABLE  display window should be sizeable 
pygame.NOFRAME  display window will have no border or controls 

Ok, kann ich den Vollbild-Modus gelangen .. Hier ist mein Code:

__author__ = 'EricsonWillians' 

from pygame import * 
import ctypes 
init() 
user32 = ctypes.windll.user32 
screenSize = user32.GetSystemMetrics(0)/2, user32.GetSystemMetrics(1)/2 

size = (screenSize) 
screen = display.set_mode(size) 
display.set_caption("Game") 
done = False 
clock = time.Clock() 

def keyPressed(inputKey): 
    keysPressed = key.get_pressed() 
    if keysPressed[inputKey]: 
     return True 
    else: 
     return False 

while not done: 
    for e in event.get(): 
     if e.type == QUIT: 
      done = True 
     if keyPressed(K_F10): 
      if screen == display.set_mode(size): 
       screen = display.set_mode(size, FULLSCREEN) 
      else: 
       screen = display.set_mode(size, "What flag should I put here for 'windowed'?") 

    screen.fill((0,0,0)) 
    display.flip() 
    clock.tick(60) 

quit() 

Es gibt keinen Weg zu „wechseln zurück“, um den Vollbild-Modus, weil es keine „gefensterten“ Flagge wie in SDL.

Und "pygame.display.toggle_fullscreen()" funktioniert nicht. (Zumindest konnte ich es nicht schaffen).

Ich habe versucht "-1" oder "0" oder "nicht FULLSCREEN", aber keiner von ihnen funktioniert (Mit "0" als Flagge, der Bildschirm wird "komisch" .. Ich weiß nicht, was passiert haha , aber es ist nicht WINDOWED).

Antwort

9

gebe einfach keine Flaggen

if e.type is KEYDOWN and e.key == K_w: 
    pygame.display.set_mode(size) 
if e.type is KEYDOWN and e.key == K_f: 
    pygame.display.set_mode(size, FULLSCREEN) 

für mich Works.

EDIT

mit einer einzigen Schlüssel, Verwendung Zum Umschalten:

if (e.type is KEYDOWN and e.key == K_f): 
    if screen.get_flags() & FULLSCREEN: 
     pygame.display.set_mode(size) 
    else: 
     pygame.display.set_mode(size, FULLSCREEN) 
+0

Du hast Recht! Ich habe das schon mal probiert, aber mit dem gleichen Schlüssel. Ich tat wie du, mit einem anderen Schlüssel ohne die Flaggen, und es funktionierte. Ich frage mich, warum es nicht mit dem gleichen Schlüssel funktioniert hat ... –

Verwandte Themen