Pygame全屏模式故障

时间:2018-07-04 18:10:24

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

我刚开始在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我尝试了该解决方案,但是没有用。我一直在努力寻找奇怪台式机的解决方案,但是找不到。我会感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

因为没有画任何东西,所以出现黑屏。

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

A 不会执行 ,因为您的代码未正确对其进行检查:

if event.type == K_a:

应该是

if event.key == pygame.K_a:

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

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

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

时,代码正确退出了

答案 1 :(得分:2)

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

第一个问题是您正在使用Java Class的地方使用com.company.example.AClass

AClass.java

第二个src/com/company/example需要更改为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

您的桌面看起来很模糊,因为PyGame应用程序以event.key分辨率运行,该分辨率比大多数显示器都要小。在关闭PyGame窗口之前,它仍然处于打开状态。只要打开窗口,自定义分辨率就会保留。

希望我能帮助您!