1

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

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

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

我将所有变量都保存在函数 setGet 中。我希望通过屏幕尺寸,并让所有变量都依赖于传入的屏幕尺寸。

def setGet(screenSize):

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

setGet(screen.get_size())

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

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

4

2 回答 2

3

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

您想要做的是调整窗口大小成为一个事件。

所以你想要的是

if event.type == pygame.VIDEORESIZE:
    setGet(event.size)
于 2014-09-19T16:12:08.950 回答
2
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 文档页面https://www.pygame.org/docs/ref/display.html#comment_pygame_display_update的评论中几乎完全一样, 从 2011-01-25T23:10:35 开始仅略微编辑 - Dave伯顿感谢戴夫

于 2018-03-23T07:50:02.603 回答