使用pygame读取控制台输入
问题内容:
无论如何,是否有必要使用pygame从控制台获取输入,而不必显示单独的窗口以获取输入?我正在使用pygame跟踪键盘上的按键被按下了多长时间。
以下代码不起作用(这只是一个最小的示例,它实际上并不跟踪经过的时间):
pygame.init()
while 1:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
print event.key, 'pressed'
看起来没有任何pygame事件被引发。如果我加
screen = pygame.display.set_mode((640, 480))
后
pygame.init()
然后引发了事件,但是我有一个我不想处理的可怕的窗口。
为了解释为什么我不想要该窗口,我设想此应用程序是命令行实用程序,因此我无法使用它。是否有任何功能上的原因阻止pygame在命令行上运行?
谢谢!
编辑:
我推测问题是pygame.init(),并且我只需要初始化键和事件模块。根据http://www.pygame.org/docs/tut/ImportInit.html,我应该可以打电话
pygame.key.init()
pygame.event.init()
但这没用。
问题答案:
Pygame专为制作(图形)游戏而设计,因此它仅在显示窗口时捕获按键。正如伊格纳西奥(Ignacio)在回答中所说的那样,从命令行和另一个窗口读取内容是非常不同的。
如果要创建命令行应用程序,请尝试使用curses:
不幸的是,它仅适用于Linux和Mac OSX。