问题描述
我一直在学习 Python 并决定玩转 PyGame。当我运行脚本时,PyGame 窗口随机停止显示。我没有收到任何错误或任何消息,只是不会出现 PyGame 窗口。以前的脚本可以工作,现在不行了。我之前遇到过这个问题,并重新启动了我的电脑几次,最终它又开始工作了。但它再次发生。所以我不知道是什么导致了它,也不知道如何修复它。我已经用两个不同的 PyGame 脚本尝试过,但都不起作用。我将在下面发布一个示例脚本。我使用的是 PyGame 2.0.1 版、SDL 2.0.14 版、Python 3.7.3 版,我的操作系统是 Windows 10,我使用的是 PyCharm。我知道 PyGame 版本 2 是新的,这是新版本的错误吗?感谢您的帮助。
编辑:再次重新启动计算机在短期内解决了该问题。我仍在寻找问题的长期解决方案,这样我就不必每次发生这种情况时都重新启动计算机。
这是一些示例代码:
import pygame,sys
pygame.init()
windowSize = sizeW,sizeH = 1920,1080
window = pygame.display.set_mode(windowSize)
pygame.display.set_caption('Test')
black = 0,0
speed = 0.2
x,y = 50,50
h,w = 50,50
blue = 0,255
guy = pygame.image.load('tile032.png')
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and x - speed > 0:
x -= speed
if keys[pygame.K_RIGHT] and x + w + speed < sizeW:
x += speed
if keys[pygame.K_UP] and y - speed > 0:
y -= speed
if keys[pygame.K_DOWN] and y + speed + h < sizeH:
y += speed
window.fill(black)
window.blit(guy,(x,y))
pygame.display.update()
解决方法
正确处理关闭窗口,使用pygame.quit()。
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
,
当您在调用 pygame 窗口后立即退出该窗口时,通常会出现此问题。只有在 run 变量变为 False 后才可以通过退出 pygame 来解决它。要么在程序结束时或在 run 函数定义为 false 后创建逻辑。