2015-04-25 23 views
1

遊戲結冰,而不是退出。我必須退出空閒狀態。有什麼想法做什麼?爲什麼不會pygame退出?

def quit_game(): 
    for event in pygame.event.get(): 

     if event.type == pygame.QUIT: 

      sys.exit() 
quit_game() 
+0

運行從空閒編輯一個文件旨在類似於'蟒蛇-i運行命令行文件path_to_file.py'。如果你在命令行用'python -i'通過上面的代碼運行你的遊戲,它是否和你報告的一樣(凍結而不是退出)? –

+0

我剛剛有一個pygame程序員嘗試我建議的實驗(在Win 7上使用3.4),而當命令窗口顯示交互式>>>提示時,遊戲窗口實際上會凍結。 –

回答

0

這是一個IDLE錯誤。我會推薦使用真正的IDE,如pycharm。但要解決此問題,請查看pygame FAQ。他們提供的這種解決方案:

# ... running = True 
while running: 
    event = pygame.event.wait() 
    if event.type == pygame.QUIT: 
     running = False # Be IDLE friendly 
pygame.quit() 
+0

好的,謝謝:) – pewpew

+1

Idle捕獲SystemExit是一個設計決定,而不是bug。它可能不是唯一的空閒。對於用戶來說,這通常是一個優點,即使在運行PyGame時也是如此。也許行爲的細節可能會被調整。我認爲常見問題在保持引用的猜測上是錯誤的。我知道從「編輯空閒」和「空閒開始」菜單圖標開始的聲明區別是錯誤的。 –

+1

遊戲窗口凍結行爲是Python本身如何通過-i傳遞的行爲。看到我對這個問題的評論。這不是一個空閒的錯誤。閒置是一個真正的IDE,即使不像PyCharm那樣複雜或複雜。 –

0

它可以工作....

def quit_game(): 
     for event in pygame.event.get(): 

      if event.type == pygame.QUIT: 
       pygame.quit() 
       sys.exit() 
    quit_game()