【问题标题】:How to put limits on resizing a window in pygame如何限制在pygame中调整窗口大小
【发布时间】:2013-08-19 13:29:29
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: python python-2.7 pygame window-resize


    【解决方案1】:

    您可以使用 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

    【讨论】:

    • 谢谢!你的回答完美无缺。我的图形是根据屏幕尺寸调整大小的,但这很好,因为事实证明,我使用宽度/高度变量来完成它,并且这些变量保持准确。再次感谢,我会标记为正确的。
    • 奇怪,我试过这个(在修复了几个语法错误之后),它对停止窗口大小调整没有影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多