【问题标题】:Mac OS X pygame input goes to Terminal instead of PythonMac OS X pygame 输入转到终端而不是 Python
【发布时间】:2010-04-27 05:20:21
【问题描述】:

我无法通过终端在 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 都不会被此脚本处理,但终端会回显空格。

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

【问题讨论】:

  • 这会弹出一个pygame窗口吗?你试过聚焦那个窗口吗?
  • 是的,它会弹出一个窗口,是的,我尝试给该窗口焦点。它似乎接受了焦点,但输入仍然出现在终端中。

标签: python macos terminal pygame


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你能检查一下 pygame.K_* 常量是否真的对应于你键盘的正确值吗?作为记录,我在 MacBook Pro 上的 Linux 中尝试了您的代码,它似乎工作正常。

    【讨论】:

    • 我也在 Linux 中尝试过这段代码,它运行良好。我很确定问题出在我的终端环境和/或 Pygame 配置上,但我不知道它是什么。
    • 还有一个建议(如果你还没有解决这个问题),你确定python_select 正在按照你想要的方式工作吗? stackoverflow.com/questions/1768881/…
    猜你喜欢
    • 2010-10-29
    • 2011-11-13
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2011-06-10
    相关资源
    最近更新 更多