Mac OS X pygame 输入进入终端而不是 Python
我在Mac OS X的终端上运行一个基于pygame的应用时遇到了问题。输入事件,比如按键,竟然被终端接收了,而不是我的Python应用,这让pygame无法检测到这些输入。
举个例子,我有一个测试脚本:
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"
当我从Mac OS X的终端运行这个脚本时,K_ESCAPE和K_SPACE这两个按键都不会被处理,但终端会显示出我按下的空格。
我使用的是MacPorts版本的pygame(py-game),它依赖于Python 2.4,并且我还用python_select把python24设置为当前活跃版本。
2 个回答
1
你能检查一下pygame.K_*这些常量是否真的和你键盘上的按键对应吗?顺便说一下,我在MacBook Pro的Linux系统上试了你的代码,结果运行得很好。
2
在Mac Ports上,默认的py-game确实有你说的问题。一个解决办法是安装py-game2.6这个版本。对我来说,这在OS X 10.6.7上是可以正常工作的。