2017-08-15 32 views
0

我是一個開始嘗試使用python和pygame在線課程製作遊戲的程序員。但是當我運行下面的代碼時,pygame窗口打開一瞬間,然後關閉。當我運行我的Python程序時,pygame窗口打開一秒鐘,然後退出

import pygame 

pygame.init() 
screen = pygame.display.set_mode((900,700)) 

finished = False 

while finished == False: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      finished = True 

    rectOne = pygame.Rect(0,0,30,30) 

    color = (0,0,255) #R,G,B 
    pygame.draw.rect(screen,color,rectOne) 
    pygame.display.flip() 

我也沒有收到任何錯誤消息。這就像它運行我的循環,然後將finished更改爲True。我檢查了很多次,我的代碼完全符合在線課程的代碼。我使用的是Mac和Python 2.7.13。誰能幫忙? 更新:我不確定這是否有幫助,但我仍然可以運行下面的代碼,它工作得很好。 進口pygame的

pygame.init() 
screen = pygame.display.set_mode((900,700)) 

finished = False 

while finished == False: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      finished = True 
+2

你如何運行代碼?您可能需要從終端運行它以查看任何錯誤。 –

+1

當我運行你的代碼時,窗口保持打開狀態,左上角有一個藍色方塊。它不會在第二個 – jacoblaw

+0

後關閉,方法是單擊運行選項卡,然後單擊「運行模塊」。它可能是我的電腦。 – MakeDaGames

回答

0

OK,我已搜查你的問題了一下,我來,你需要嘗試以下幾點結論:

A)使用pygame.display.update()代替pygame.display.flip()

B)嘗試將這些放在主循環外部的程序結尾處:pygame.QUIT並在下一行quit()

C)如果上述任何一種情況蒸發散的工作,那麼你需要檢查QUIT事件得到自動觸發,這樣做是通過改變你的while循環,如下所示:

while not finished: 
    for event in pygame.event.get(): 
     print(event) 

在此之後,當你運行你的程序,在殼牌它將顯示在pygame屏幕上發生的事件,如果有問題,那麼第一個和最後一個事件將是QUIT,然後它可能是Mac或版本的問題,因爲我最近閱讀關於它的reddit,檢查出它here

+0

感謝您的幫助,但這些工作都沒有。當我打印這些事件時,我得到: 我非常肯定這對我的Mac來說肯定是個問題,如果這是真的,我想知道你是否可以回答我將很快發佈的問題。 – MakeDaGames

相關問題