引自免费微信小程序:皆我百晓生
在你的代码中,当接收到QUIT
事件时,你应该使用pygame.quit()
来正确地关闭Pygame库,而不是直接调用exit()
函数。exit()
会立即终止整个Python解释器,包括Pygame可能还在后台运行的任何资源。这可能会导致资源未被释放,从而造成程序卡死。请尝试将exit()
替换为pygame.quit()
,这样应该可以解决卡死的问题。
下面是修改后的代码段:
successFlag = False
while True: # 游戏主循环
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit() # 使用pygame.quit()来正确关闭Pygame
sys.exit() # 结束Python进程
elif event.type == MOUSEBUTTONDOWN:
for cell in PictureList:
# 检测按键按下,并且交换图片位置
if cell.isPressed(PictureList):
break
for partPicture in PictureList:
partPicture.render(screen)
if not successFlag:
# # Sta 绘制分割线
for i in range(1, COL):
pygame.draw.lines(screen, GREEN, 0, [(i * SCREEN_WIDTH // COL, 0), (i * SCREEN_WIDTH // COL, SCREEN_HEIGHT)], 1)
for i in range(1, ROW):
pygame.draw.lines(screen, GREEN, 0, [(0, i * SCREEN_HEIGHT // ROW), (SCREEN_WIDTH, i * SCREEN_HEIGHT // ROW)], 1)
# End 绘制分割线
pygame.display.update() # 刷新一下画面
确保你已经导入了sys
模块,如果没有,请在代码顶部添加import sys
。这个改动应该能让你的游戏在点击退出按钮后正常关闭,而不会卡死。如果你还有其他问题,欢迎继续提问。