python pygame程序在切换到linux时无法正常工作
我有一个程序,在pygame环境中从用户那里接收密钥,然后它在控制台上打印一些信息,并执行一些其他工作 它在windows上对我很管用 当使用相同的代码切换到linux时,它不能正常工作,并且似乎对键盘上的任何输入键都没有响应 我试着用1/0来测试问题到底出在哪里,就像Hyperboreus先生建议的那样(下面代码中的注释) 我在“if event.key”中找到了确切的问题 我使用的功能是:python pygame程序在切换到linux时无法正常工作,python,linux,pygame,Python,Linux,Pygame,我有一个程序,在pygame环境中从用户那里接收密钥,然后它在控制台上打印一些信息,并执行一些其他工作 它在windows上对我很管用 当使用相同的代码切换到linux时,它不能正常工作,并且似乎对键盘上的任何输入键都没有响应 我试着用1/0来测试问题到底出在哪里,就像Hyperboreus先生建议的那样(下面代码中的注释) 我在“if event.key”中找到了确切的问题 我使用的功能是: for event in pygame.event.get(KEYDOWN): # 1/0 -
for event in pygame.event.get(KEYDOWN):
# 1/0 --> it give me an error when pressing any button
if event.key == K_i:
numbers.insert(0,number)
#1/0 --> is not giving me any error when pressing i
print "ingoing"
return 1 #"ingoing"
elif event.key==K_m:
numbers.insert(0,number)
print "missed"
return 2 #"missed"
elif event.key==K_o:
numbers.insert(0,number)
print "outgoing"
return 3 #"outgoing"
elif event.key==K_l:
disp_log() #this function displays test on the pygame screen
else :
None
我通过这个命令从终端播放脚本
python xxxxx.py
我正在安装python2.7、python3和python3.2以及pygame
我试着移除它们,然后再次安装它们,但正如@Hyperboreus建议的那样,同样的问题仍然存在,我在for中的第一行放了一个print event.key。我使用if条件的打印值,而不是“K_I”或“K_m”等 对我来说效果很好。
我的最新版本中的pygame可能删除了使用K_键的选项,并将其替换为其他内容。但是向上的方法对我来说效果很好,多亏了@Hyperboreus请在
打印“ingoing”
之前在一行上放置一个1/0
,以确保满足此条件。如果您的脚本在按i
时抛出错误,则输出有问题。如果它没有抛出错误,则永远无法到达打印
行。请发布结果。@Hyperboreus:它没有给出错误,聪明的建议聪明的建议:(a)你的事件循环没有运行,(b)你永远不会得到关键事件,(c)太阳耀斑。真的,我只是在泥泞的池塘里用棍子戳。检查你的整个脚本,看看你的代码实际执行了多远,如果主事件循环运行,等等@Hyperboreus:没有其他的一切都是好的,正如我告诉你的,我在windows上测试了它,当我在“for event”之后立即放入1/0时,它就工作了语句当我按下任何按钮时,它给了我一个错误,但当我将它放入任何if条件时,它没有给我一个错误,这意味着问题在“event.key”中!将打印事件作为第一行输入的。并根据您的条件使用打印的值。