如何在pygame表面窗口中切换全屏

时间:2015-03-07 23:53:52

标签: pygame

如何让我的Pygame表面全屏?我尝试过以下方法:

pygame.display.toggle_fullscreen()

但它不能满足我的需要。

3 个答案:

答案 0 :(得分:1)

我知道它不是很优雅,但每次你想改变你的屏幕模式(即大小,显示标志)时你都可以调用Pygames display.set_mode()函数。

您需要先关闭整个显示模块display.quit(),然后再次初始化display.init()

import pygame as pyg

pyg.init()
screen = pyg.display.set_mode((200, 300), pyg.RESIZABLE)

screen.fill((255,155,55))
pyg.display.flip()

while True:

    ev = pyg.event.wait()

    if ev.type == pyg.MOUSEBUTTONDOWN and ev.button == 1:
        # Display in Fullscreen mode
        pyg.display.quit()
        pyg.display.init()
        screen = pyg.display.set_mode((0, 0), pyg.FULLSCREEN)

    elif ev.type == pyg.MOUSEBUTTONDOWN and ev.button == 2:
        # Display in Resizable mode
        pyg.display.quit()
        pyg.display.init()
        screen = pyg.display.set_mode((200, 300), pyg.RESIZABLE)

    screen.fill((255,155,55))
    pyg.display.flip()

答案 1 :(得分:0)

从某个地方拿回来,不记得来源了:

display = (1280,720) #whatever you want the screen size to be
if event.key == K_h: #Just a key to toggle fullscreen
    if pygame.display.get_driver()=='x11':
        pygame.display.toggle_fullscreen()
    else:
        acopy=screen.copy()                    
    if fullscreen:
        screen=pygame.display.set_mode(display)
    else:
        screen=pygame.display.set_mode(display, pygame.FULLSCREEN)
        fullscreen= not fullscreen
        screen.blit(acopy, (0,0))                    
        pygame.display.update()

答案 2 :(得分:0)

感谢您的回答。我终于找到了其他一些帖子的答案,这些帖子甚至不打算回答我的问题:

import pygame
import ctypes

def set_screen_prop():
    user32 = ctypes.windll.user32
    screenSize =  user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
    print screenSize
    size = (screenSize)
    pygame.display.set_caption("Window")
    return pygame.display.set_mode((size) , pygame.FULLSCREEN)

pygame.init()
window=set_screen_prop()
pygame.quit()