2013-05-03 39 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