Pygame 全屏模式故障

Pygame Fullscreen Mode Glitch

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

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 运行 正常,创建全屏黑色 window。然后出现了一只鼠标,当我按下 A 键时。当我这样做时,我无法退出 pygame window。我进入 Control+Alt+Delete 任务管理器,它显示了桌面。图形变得不那么逼真了,屏幕也放大了。唯一的出路是进入任务管理器并结束 python 任务。然后它又回到了正常的桌面。我查看了另一个项目: 我尝试了该解决方案,但没有成功。我一直试图找到 st运行ge 桌面的解决方案,但找不到。非常感谢您的帮助!

你黑屏是因为你没有画任何东西。

该代码仍在 运行 无限循环中,这就是为什么您必须在任务管理器中完成它的原因。

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

if event.type == K_a:

应该是

if event.key == pygame.K_a:

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

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

我 运行 上面更改的代码,当我按下 A

时它正确退出

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

第一个问题是您在需要使用 event.key 的地方使用 event.type

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 window 在您关闭它之前一直处于打开状态。只要 window 打开,自定义分辨率就会保留。

希望对您有所帮助!