在使用pygame库创建一个游戏界面之后点击关闭时无法响应问题解决
最近在学习pygame库的一些使用时遇到了一个问题,就是在游戏界面创建之后,要关闭时总是无法响应,只能拒绝等待响应直接强行关闭,然后所使用的spyder就只不得不重启内核
原代码如下:
while True:
...
...
...
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
修改过的代码如下:
while True:
...
...
...
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
sys.exit()
代码解释:无限循环内包含着一个事件循环,侦听用户的每一步操作并根据发生事件执行合适的任务,当用户单击窗口关闭按钮时,检测到pygame.QUIT事件,进而先后调用pygame.quit() 和 sys.exit()来退出
pygame.quit()是pygame.init()函数的一种相反的函数,它运行的代码会使得Pygame库停止工作。如果一个Pygame程序在调用pygame.quit()之前就终止了,将会导致IDLE挂起。所以在调用sys.exit()终止程序之前,总是应该先调用pygame.quit()。