如何让我的pygame窗口最小化和最大化?

3

我有一个 Pygame 游戏,但屏幕大小无法更改,即使我想要扩大。有什么办法可以解决吗?

1个回答

3

当您调用pygame.display.set_mode()时,通过设置pygame.RESIZABLE标志,您可以创建一个可调整大小的显示器。

window = pygame.display.set_mode((width, height), pygame.RESIZABLE)

当窗口尺寸改变时,就会出现 pygame.VIDEORESIZE 事件。例如:

import pygame

pygame.init()
window = pygame.display.set_mode((800, 600), pygame.RESIZABLE)

run = True
while run:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        elif event.type == pygame.VIDEORESIZE:
            window = pygame.display.set_mode((event.w, event.h), pygame.RESIZABLE)

    # [...]

在第14行,我是否需要编写(在您的示例中)500、500,以及在event.w和event.h中应该编写什么。然后在下一行,我是否需要编写((500, 500)...)? 它不起作用。 - Hydro
2
@RMR_MD 当然可以。没有什么是自动发生的。您必须根据屏幕的宽度和高度绘制相关对象。 - Rabbid76
1
@RMR_MD 现在你需要再次使用 widthheight(这是你之前不喜欢的)。无论如何,你可以通过 window.get_size() 获取窗口的大小,分别通过 window.get_width()window.get_height() 获取宽度和高度。根据当前窗口的大小重新创建按钮。 - Rabbid76
1
@RMR_MD 不对,最小化窗口时不会触发 pygame.VIDEORESIZE 事件。该事件仅在调整窗口大小和最大化(全屏)时触发。最小化只是将窗口“隐藏”。 - Rabbid76
1
@RMR_MD我推荐以下网站:PyGame -教程Pygame Front Page。在“Pygame前页”的浅绿色区域,您可以选择不同的pygame模块,并找到有关不同主题的API文档。pygame API文档结构良好,非常详细。 - Rabbid76
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接