2010-04-27 90 views
7

我在通过终端在Mac OS X上运行基于pygame的应用程序时遇到问题。输入事件(如键击)会转到终端而不是我的Python应用程序,并且会被pygame检测到。Mac OS X pygame输入转到终端而不是Python

例如,我有以下的测试脚本:

import pygame 

pygame.init() 
screen = pygame.display.set_mode((640, 480)) 

done = False 
while not done: 
    pygame.event.pump() 
    keys = pygame.key.get_pressed() 
    if keys[pygame.K_ESCAPE]: 
     done = True 
    if keys[pygame.K_SPACE]: 
     print "got here" 

无论K_ESCAPE也不K_SPACE将当我从Mac OS X终端运行此脚本来处理,但是终端将被反馈回来的空间。

我正在运行pygame(py-game)的MacPorts端口,它依赖于Python 2.4,我也使用python_select使python24成为活动版本。

+0

这是否会弹出一个pygame窗口?你有没有尝试聚焦这个窗口? – nosklo 2010-04-27 05:49:06

+0

是的,它弹出一个窗口,是的,我试着给窗口焦点。它似乎接受了重点,但输入仍然出现在终端中。 – Parappa 2010-04-27 07:39:40

回答

2

Mac端口上的默认py游戏存在您描述的问题。解决方法是安装py-game2.6目标。这适用于OS X 10.6.7。

1

你可以检查pygame.K_ *常量是否对应于键盘的正确值吗?对于记录,我在MacBook Pro的Linux上试过你的代码,它似乎工作正常。

+0

我在Linux中试过这段代码,它工作正常。我很确定问题出在我的终端环境和/或Pygame配置上,但我不知道它是什么。 – Parappa 2010-05-06 21:37:31

+1

还有一个建议(如果你还没有解决这个问题),你确定'python_select'按照你想要的方式工作吗? http://stackoverflow.com/questions/1768881/how-to-make-python-select-work-for-python-command – aganders3 2010-05-26 20:59:19