刚刚搞乱了pygame并遇到了这个错误。
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();
错误:
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时,程序将退出。出了什么问题?
答案 0 :(得分: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()
- the documentation建议让您的程序以正常方式退出。
答案 1 :(得分:2)
当你逃脱时切换一个布尔。然后,如果需要,您可以在其他地方干净地保存数据。
done = False
while not done:
#events
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
draw()
答案 2 :(得分:1)
我回想起一个简单的python音乐播放器事件。 此处的代码
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()