【问题标题】:Pygame Fullscreen Mode GlitchPygame 全屏模式故障
【发布时间】:2018-07-04 18:10:24
【问题描述】:

我刚刚在 Windows 10 PC 上使用 python 3.6.5 上的 pygame 开始了一个新游戏,但最终我遇到了一个我无法解决的非常疯狂的故障。这是我的代码,稍后我会解释我的问题。

import pygame

pygame.init()

def create_window():
    window = pygame.display.set_mode((800,600),pygame.HWSURFACE|pygame.DOUBLEBUF|pygame.FULLSCREEN)


create_window()

isRunning = True

while isRunning:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.type == K_a:
                isRunning = False


pygame.quit()

所以当我运行这段代码时,pygame 正常运行,创建了一个全屏黑色窗口。然后出现了一个鼠标,当我按下 A 键时。当我这样做时,我无法退出 pygame 窗口。我进入 Control+Alt+Delete 任务管理器,它向我显示了桌面。图形变得不那么逼真,屏幕放大了。唯一的出路是进入任务管理器并结束 python 任务。然后它又回到了正常的桌面。我查看了另一个项目:pygame fullscreen mode exit 我尝试了该解决方案,但没有成功。我一直试图找到奇怪桌面的解决方案,但找不到。我将不胜感激!

【问题讨论】:

    标签: python pygame windows-10 desktop visual-glitch


    【解决方案1】:

    因为你没有画任何东西,所以你得到了黑屏。

    代码仍在无限循环中运行,因此您必须在任务管理器中完成它。

    A 没有任何作用,因为您的代码没有正确检查:

    if event.type == K_a:
    

    应该是

    if event.key == pygame.K_a:
    

    您的桌面很奇怪,因为您让 pygame 将您的视频卡更改为 800x600 分辨率,这不是您的本机桌面分辨率

    一切都正确,代码的行为与您编写的一样。

    我使用上面的更改运行代码,当我按下 A 时它正确退出

    【讨论】:

    • 字面意思是在奇怪的全屏模式下写这个。这就是你知道这不起作用的方式。对不起!
    • @Guydangerous99 一切似乎都是正确的。您所描述的行为正是您编写的代码应有的行为,因此没有任何东西不起作用
    • @Guydangerous99 写代码很危险! - 有一个人写了一个代码来扰乱监视器频率并且监视器爆炸了!
    • 大声笑,无论如何,上面的人解决了这个问题。至少我知道当我拖钓我的朋友时该怎么做! ;)
    • @Guydangerous99 他的回答和我的一模一样,我先回答了——哦,好吧
    【解决方案2】:

    我发现您的代码存在多个问题。以下是一些解决方案:

    第一个问题是你使用event.type,而你需要使用event.key

    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.type == pygame.K_a:
                isRunning = False
    

    第二个event.type 需要更改为event.key

    第二个问题是K_a需要以pygame.为前缀,像这样:

    if event.key == pygame.K_a:
    

    您的桌面看起来很模糊,因为 PyGame 应用程序以800x600 分辨率运行,低于大多数显示器。 PyGame 窗口仍然打开,直到您关闭它。只要窗口打开,自定义分辨率就会保留。

    希望能帮到你!

    【讨论】:

    • 这工作谢谢! :) 现在我知道如果我想引诱我的朋友该怎么做 :)
    • 对不起,如果这个答案看起来是复制的,@nosklo 回答时正在输入它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 2014-03-25
    • 1970-01-01
    相关资源
    最近更新 更多