Mac OS X pygame 输入进入终端而不是 Python

7 投票
2 回答
2345 浏览
提问于 2025-04-15 22:03

我在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上是可以正常工作的。

撰写回答