3

我在 pygame 中设置了一个窗口,如下所示: screen = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT),pygame.RESIZABLE)

如您所见,它是可调整大小的,并且该方面工作得很好,但是如果它太小,则您无法看到所有内容,因此我想设置一个限制,例如,您不能调整大小屏幕宽度小于 600 或高度小于 400,有没有办法在 pygame 中做到这一点?

谢谢!

4

1 回答 1

7

您可以使用 pygame.VIDEORESIZE 事件来检查调整大小时的新窗口大小。您所做的是在事件中检查新的窗口大小值,根据您的限制更正它们,然后使用这些值重新创建屏幕对象。

这是一个基本脚本:

import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((640,480), HWSURFACE|DOUBLEBUF|RESIZABLE)
while True:
    pygame.event.pump()
    event = pygame.event.wait()
    if event.type == QUIT: pygame.display.quit()
    else if event.type == VIDEORESIZE:
        width, height = event.size
        if width < 600:
            width = 600
        if height < 400:
            height = 400
        screen = pygame.display.set_mode((width,height), HWSURFACE|DOUBLEBUF|RESIZABLE)

编辑:根据您的游戏图形的绘制方式,您可能希望根据窗口调整大小来调整它们的大小(没有测试过,只是在这个例子之后:http: //www.pygame.org/wiki/WindowResizing

于 2013-08-18T17:47:04.980 回答