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

赤いXを押すとプログラムが終了するように、whileループを設定しようとしていました。何が問題になっていますか?

4

3 に答える 3

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

呼び出す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 に答える