2013-05-03 65 views
0

我剛剛安裝了Pygame 1.9.2並運行Python 3.3。我無法弄清楚如何製作,所以當我點擊pygame窗口中的'X'時,程序關閉。我相信下面的代碼適用於Pygame 1.9.2和Python 3.2,但有什麼辦法讓它在Python 3.3上工作嗎?爲了獲得正確的效果,我需要做些什麼?下面是一些簡單的代碼,說明我的意思:Pygame 1.9.2如何使用Python 3.3?

# Drawing Lines 

import pygame 
from pygame.locals import * 
pygame.init() 
screen = pygame.display.set_mode((600,500)) 
pygame.display.set_caption("Drawing Lines") 

while True: 
    for event in pygame.event.get(): 
     if event.type in (QUIT, KEYDOWN): 
      sys.exit() 

    screen.fill((0,0,200)) 

    #draw the line 
    color = 255,255,0 
    width = 8 
    pygame.draw.line(screen, color, (100,100), (500,400), width) 

    pygame.display.update() 

當我運行它,會出現上有一個對角線的屏幕,就像它應該,但是當我點擊「X」的頂部窗口右漢字角落關閉窗口,我收到以下錯誤信息:

Traceback (most recent call last): 
    File "C:\Python33\Exercise Programs\test_code\code\chap02\DrawingLines.py", line 13, in <module> 
    sys.exit() 
NameError: name 'sys' is not defined 

我想,說sys.exit()應該如果這是在mython 3.2運行關閉窗口行,但它並沒有在Python 3.3中這樣做。該窗口凍結,我得到該錯誤消息。我如何在Python 3.3中達到預期效果?我需要輸入哪一行?

+2

如果您將'import sys'添加到您的腳本,它有幫助嗎? – 2013-05-03 19:51:24

+1

「我相信下面的代碼適用於Pygame 1.9.2和Python 3.2」你是否運行3.2中的代碼來驗證這個信念? – Kevin 2013-05-03 19:53:12

回答

3

喲沒有導入系統。只需添加

import sys 

到您的進口,那麼它應該工作。

事實上,你看到一個帶有繪圖的窗口表明程序運行正常。

+0

我期望看到帶有OP原始代碼的屏幕。即使沒有導入'sys','sys.exit()'在語法上仍然是有效的。所以程序應該成功運行,直到用戶點擊X按鈕並且'sys.exit()'嘗試執行。 – Kevin 2013-05-03 20:03:01

+0

...「當我運行這個時,屏幕上會出現一條對角線,就像它應該」......?這意味着它正在運行並且僅在sys.exit失敗。 – mata 2013-05-03 20:07:43

+0

所以我們同意你在最初運行腳本時可以看到屏幕。那麼爲什麼你在回答中寫下「你根本看不到任何屏幕」? – Kevin 2013-05-03 20:09:29