在这里发表我的第一篇文章(或者坦率地说是任何论坛),但是我想知道为什么当窗口的退出按钮[x]被按下时我不能退出。我试过:
#print "Exit value ", pygame.QUIT
for et in pygame.event.get():
#print "Event type ", et.type
if et.type == pygame.KEYDOWN:
if (et.key == pygame.K_ESCAPE) or (et.type == pygame.QUIT):
print "In Here"
return True;
pygame.event.pump()# not quite sure why we do this
return False;
我发现pygame.QUIT打印了一个值12,当我运行程序时,当我单击[x]时,一个事件类型打印了“12”。“在这里”的字串在这些场合从不打印。当返回为真时(当我在键盘上按ESC键时),程序将正确退出。我看了一些相关的问题:所以
我不是在闲着跑,我是在跑:
EclipseJuno服务版本1。
Python2.7.3和PyGame2.7的最新版本(截至2013年3月4日)。
Windows 7&8和Ubuntu 12.04LTS(除了Ubuntu中没有声卡错误外,结果相同)
我在Windows7中运行时双击了运行该程序的.py文件,但仍无法在[x]上退出。提前谢谢。
你的主回路应该是这样的
然后,如果你把“完成”切换到任何地方,它就会很好地退出。
在你的事件循环中
问题(在2
#------------#
之间)让我们分析一下这一部分:
et.type == KEYDOWN
QUIT
的检查在if et.type == KEYDOWN
中。et.type
是KEYDOWN
,所以它不能是QUIT
。。et.type == QUIT
,所以,即使你点击了“X”,你的窗口也不会退出。
怎么办?
将
QUIT
从KEYDOWN
的条件中拉出,类似于:注:
;
总是在不同的if elif块中检查
event.type
,比如pygame.event.pump()
在那里,见Here相关问题 更多 >
编程相关推荐