全屏切换似乎立即再次回归

时间:2018-01-10 21:48:59

标签: python python-3.x pygame

我是python的新手,我试图让键盘上的1个按钮在使用pygame的应用程序中切换全屏。不知怎的,else:语句使它立即再次回到窗口模式。至少这是我的理解。任何人都可以告诉我为什么会发生这种情况,并提供另一种方法吗? 这是代码:

# screen = pygame.display.set_mode((1024, 768))
# fullscreen = False
if event.key == K_1:
    if fullscreen == False:
        pygame.display.set_mode((1024, 768), FULLSCREEN)
        fullscreen = True
    else:
        pygame.display.set_mode((1024, 768))
        fullscreen = False

2 个答案:

答案 0 :(得分:0)

我认为这是在你的循环中。如果是这样,每次游戏刷新时,它将检查输入,当它看到没有按下K_1时,将再次禁用全屏。您必须经常完成K_1。你需要删除其他人。

答案 1 :(得分:0)

看起来您正在检查每个框架以查看您的事件密钥(K_1)是否被保留。相反,您可能想要检查KEY_UP或KEY_DOWN事件。我不熟悉pygame - 但我认为你可能从你的event变量中得到那种信息。

或者,保留一个变量来检测您何时仍然按住该键 - 这可能看起来像这样:

# outside of the loop code
holding_fullscreen = false

# inside the loop code
if event.key == K_1:
    if not holding_fullscreen:
        holding_fullscreen = true
        if not fullscreen:  # more pythonic version of fullscreen == False
            # set fullscreen
        else:
            # set windowed
else:
    holding_fullscreen = False