Comment puis-je quitter le mode plein écran en Pygame?

<!-C'est peut-être une question idiote, mais c'est un problème stupide que je ne puisse pas trouver de docteur pour ça.

Pygame me donne ces drapeaux pour affichage.définir.mode ():

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, je peux entrer en mode plein écran.. Maintenant voici mon 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()

il n'y a aucun moyen de "revenir en arrière" en mode plein écran, car il n'y a pas de drapeau "WINDOWED" comme dans SDL.

Et " pygame.afficher.toggle_fullscreen ()" ne fonctionne pas. (Au moins, je ne pouvais pas le faire travail.)

j'ai essayé " -1 "ou" 0 "ou" pas de plein écran", mais aucun d'eux ne fonctionne (avec" 0 "comme drapeau, l'écran devient"bizarre".. Je ne sais pas ce qui se passe haha, mais ce n'est pas en mode FENÊTRÉ).

8
demandé sur Ericson Willians 2014-02-24 10:27:16

1 réponses

il suffit de ne pas spécifier de drapeau

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)

Fonctionne pour moi.

EDIT

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)
10
répondu Peter Gibson 2014-02-24 06:53:22