我正在尝试编写一个简单的python应用程序,它将检测2轴操纵杆轴的移动,并在一个轴移动到端点时调用其他函数。我不经常编程,我在做系统管理任务。在
使用pygame库这很容易,但是当我调用get_axis()方法时,我在控制台上得到了一个输出。示例:
import pygame
pygame.joystick.init()
stick = pygame.joystick.Joystick(0)
stick.init()
pygame.init()
while True:
for e in pygame.event.get():
x=stick.get_axis(0)
y=stick.get_axis(1)
print x,y
在控制台上我看到:
^{pr2}$我将在文本模式下运行脚本,而不是为了游戏目的,所以在我的情况下,输出是大量无用的东西。 虽然类似的问题已经发布,但在我看来,没有一个能提供真正的解决方案。 造成这种情况的原因似乎是SDL库是在启用调试的情况下编译的。 如何禁用SDL库控制台输出?我不想像其他帖子所建议的那样抑制stdout/stderr。在
另一位回答者解释说,除非您自己重新编译SDL源代码,否则SDL将尝试写入stdout,因为它们保留了调试功能。我建议编写一个函数来获取_轴,它首先关闭stdout,调用SDL,再打开stdout,然后返回值。比如:
PyGame1.9.3中已经修复了这个问题。使用最新的pygame,这个就没了。在
相关问题 更多 >
编程相关推荐