2

只是在玩 pygame 并遇到了这个错误。

代码:

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();

错误:

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

我只是想设置一个while循环,这样当按下红色X时,程序就会退出。出了什么问题?

4

3 回答 3

2

调用sys.exit()会引发SystemExit异常,所以这是完全正常的。例如,尝试将您的退出调用更改为sys.exit(1),您将在回溯中看到新的退出代码:

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

在其他新闻中,您可能不需要显式调用pygame.quit()-文档建议让您的程序以正常方式退出。

于 2012-12-17T22:10:03.663 回答
2

当你点击逃生时切换一个布尔值。然后,如果需要,您可以在其他地方干净地保存数据。

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

    draw()
于 2012-12-18T05:59:43.713 回答
2

I recalled four events for a simple music player in python. The code here below

import pygame
from pygame import mixer

pygame.init()
mixer.init()
screen = pygame.display.set_mode((600, 400))
mixer.music.load("song.mp3")
mixer.music.play()

print("Press 'p' to pause 'r' to resume")
print("Press 'q' to quit")
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
               running  = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_s:
                mixer.music.stop()
            if event.key == pygame.K_r:
                mixer.music.play()
            if event.key == pygame.K_p:
                mixer.music.pause()
            if event.key == pygame.K_y:
                mixer.music.unpause()

pygame.QUIT()          
于 2020-06-14T13:21:48.433 回答