我是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
答案 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