2016-12-26 48 views
1

我正在慢慢地嘗試去了解pygame並在其中寫下我的第一個遊戲,老實說,我沒有想到問題如此之早。到目前爲止,我只設置一個顯示器,那應該是有無限(我只是想嘗試一下):Pygame顯示屏沒有響應

import pygame 

pygame.init() 

(width, height) = (1000, 700) 
screen = pygame.display.set_mode((width, height)) 
while True: 
    pygame.display.flip() 

但出現的窗口時,它說,它「沒有響應」。我試圖刪除循環,以便顯示只會閃爍一次並消失,因爲程序會在創建後死掉,但我得到的是「無響應」窗口。我使用pygame 1.9.2和python 3.5。我不知道是否麻煩可能是因爲anaconda - 默認情況下窗口是作爲anaconda的子工具打開的。

編輯:到目前爲止,我發現,當我打開它不是從Spyder,但只需點擊一個文件,它工作得很好。有沒有什麼辦法通過簡單的運行和spyder編譯來實現它的工作,或者它是如何工作的?

回答

1

將此添加到您的循環中。對我來說,唯一不響應的是當我點擊X時,這可能是因爲pygame在發生這種情況時不知道該怎麼做。

import sys 

for evt in pygame.event.get(): 
     if evt.type == pygame.QUIT: 
      pygame.quit() 
      sys.exit() 
+1

程序需要定期處理事件或操作系統認爲pygame的崩潰。這就是爲什麼當你添加'pygame.event.get()'時它會工作。 http://stackoverflow.com/documentation/pygame/5110/event-handling#t=201612261318490992061 –

+0

啊,好的。我的解決方案應該可以工作,但這是正確的解釋 – Octo

+0

您的註冊有點關閉,但否則它應該回答問題。如果你可以添加一兩行解釋爲什麼這個解決方案的工作原理,那將非常棒!在我的鏈接中,第一個示例的第三個要點和第二個示例的**注意**部分中有一個簡短說明。 –

1
#Try This 


import pygame 

(width, height) = (1000, 700) 
screen=pygame.display.set_mode((width, height)) 
pygame.display.update() 
while True: 
    for event in pygame.event.get():`` 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      quit()