微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame 运行时显示位置

如何解决Pygame 运行时显示位置

我正在制作一个 pygame 项目,遇到了一个问题,即当我退出全屏模式时,窗口会自动设置在屏幕的角落。通常,这不会成为问题,但它会将工具栏隐藏在屏幕外,从而无法拖动屏幕或调整其大小。我发现 pygame.display.toggle_fullscreen() 非常不可靠,而且每次使用时都会中断,因此我制定了自己的全屏切换方法

import pygame,tkinter

fullscr = False
scrw,srch = tkinter.Tk().winfo_screenwidth(),tkinter.Tk().winfo_screenheight()

while True:
    for event in pygame.event.get():
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_F11:
                if fullscr:
                    screen = pygame.display.set_mode((scrw,scrh),pygame.RESIZABLE)
                    screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
                else:
                    screen = pygame.display.set_mode((980,720),pygame.RESIZABLE)
                fullscr = not fullscr

对于那些好奇的人,我在将其设置为全屏之前将窗口设置为填满屏幕,因为窗口将保持其纵横比,从而破坏我的游戏并导致奇怪的故障。我已经知道 os.environ['SDL_VIDEO_CENTERED'] = '1' 是将屏幕居中的一种方式,但是在运行 pygame.init() 后这不起作用。有没有其他方法可以更改窗口位置,或者至少可以防止它在切换出全屏时将工具栏隐藏在屏幕外?

解决方法

这是一个 pygame 2 错误。

在github上有报道:https://github.com/pygame/pygame/issues/2360, 那里的作者意识到您现在可以通过调用 pygame.quit() 然后重新初始化以使 SDL_VIDEO_CENTERED 工作来解决此问题。

希望这会在 pygame 2.0.2 中得到修复。我在 https://github.com/pygame/pygame/pull/2460

为它编写了一个补丁

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。