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 打开,自定义分辨率就会保留。
希望对您有所帮助!
我刚刚在 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 任务。然后它又回到了正常的桌面。我查看了另一个项目:
你黑屏是因为你没有画任何东西。
该代码仍在 运行 无限循环中,这就是为什么您必须在任务管理器中完成它的原因。
按 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 打开,自定义分辨率就会保留。
希望对您有所帮助!