我在 pygame 中设置了一个窗口,如下所示:
screen = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT),pygame.RESIZABLE)
如您所见,它是可调整大小的,并且该方面工作得很好,但是如果它太小,则您无法看到所有内容,因此我想设置一个限制,例如,您不能调整大小屏幕宽度小于 600 或高度小于 400,有没有办法在 pygame 中做到这一点?
谢谢!
我在 pygame 中设置了一个窗口,如下所示:
screen = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT),pygame.RESIZABLE)
如您所见,它是可调整大小的,并且该方面工作得很好,但是如果它太小,则您无法看到所有内容,因此我想设置一个限制,例如,您不能调整大小屏幕宽度小于 600 或高度小于 400,有没有办法在 pygame 中做到这一点?
谢谢!
您可以使用 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)