pygame,在调整大小时如何更新窗口大小

时间:2014-09-19 15:58:11

标签: python python-2.7 window pygame pygame-surface

我有一个带有pygame可调整大小窗口的程序。

screen = pygame.display.set_mode(size,pygame.RESIZABLE)

由于它可以调整大小,我希望屏幕上的某些元素根据窗口大小改变位置和大小。

我将所有变量保存在函数setGet中。我想要屏幕大小的传递,并且所有变量都取决于传入的屏幕大小。

def setGet(screenSize):

我有一个运行命令的循环函数

setGet(screen.get_size())

当您更改窗口大小时,get_size()显然不会更新。

如何在调整窗口大小时更新屏幕大小?

2 个答案:

答案 0 :(得分:0)

嗯,我想我找到了自己的答案。

您要做的是将窗口大小调整为事件。

所以你想要的是

if event.type == pygame.VIDEORESIZE:
    setGet(event.size)

答案 1 :(得分:0)

changed = False
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit(0)
        elif event.type == pygame.VIDEORESIZE:
            scrsize = event.size
            width   = event.w
            hight   = event.h
            screen = pygame.display.set_mode(scrsize,RESIZABLE)
            changed = True

在pygame.display.init doc page https://www.pygame.org/docs/ref/display.html#comment_pygame_display_update的评论中几乎完全相同 仅从2011-01-25T23:10:3​​5略微编辑 - 戴夫伯顿谢谢戴夫