我在pygame中设置了一个窗口,如下所示:
screen = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT),pygame.RESIZABLE)
正如你所看到的那样,它是可调整大小的,而且这个方面工作得很好,但是如果它太小,那么你就看不到所有内容,所以我想设置一个限制,例如,你可以没有调整屏幕的宽度os小于600,或者高度小于400,有没有办法在pygame中做到这一点?
谢谢!
答案 0 :(得分:3)
您可以使用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)