rp.*_*ran 2 python pygame window-resize python-2.7
我在 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)
Run Code Online (Sandbox Code Playgroud)
编辑:根据您的游戏图形的绘制方式,您可能希望根据窗口调整大小来调整它们的大小(尚未测试过,只是按照以下示例进行操作:http : //www.pygame.org/wiki/WindowResizing)