Python: pygame.QUIT()

2019-07-18 03:11发布

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?

2条回答
成全新的幸福
2楼-- · 2019-07-18 03:31

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()
查看更多
Bombasti
3楼-- · 2019-07-18 03:41

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.

查看更多
登录 后发表回答