Python: pygame.QUIT()

≯℡__Kan透↙ 提交于 2019-12-11 03:09:45

问题


Just been messing around with pygame and ran into this error.

CODE:

import sys
import pygame
pygame.init()

size = width, height = 600, 400

screen = pygame.display.set_mode(size)

while 1:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit(); sys.exit();

ERROR:

Traceback (most recent call last):
  File "C:/Users/Mike Stamets/Desktop/Mygame/Pygame practice/ScreenPractice.py", line 12, in <module>
    pygame.quit(); sys.exit();
SystemExit

I was just trying to set a while loop so that when the red X is pressed then the program will exit. What is going wrong?


回答1:


Calling sys.exit() raises the SystemExit exception, so that's perfectly normal. For example, try changing your exit call to sys.exit(1) and you will see the new exit code reflected in your traceback:

Traceback (most recent call last):
  File "C:/.../pygame.py", line 8, in <module>
    sys.exit(1);
SystemExit: 1

In other news, you probably don't need to be explicitly calling pygame.quit() - the documentation suggests letting your program quit in the normal way.




回答2:


Toggle a bool when you hit escape. Then you can cleanly save data other in places, if needed.

done = False
while not done:
    #events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

    draw()


来源:https://stackoverflow.com/questions/13922854/python-pygame-quit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!