I'm having trouble running a pygame 开发者_如何学运维based app on Mac OS X via Terminal. Input events such as keystrokes go to the Terminal instead of my Python app, and are detected by pygame.
For example, I have the following test script:
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"
Neither K_ESCAPE nor K_SPACE will be handled by this script when I run it from a Mac OS X Terminal, but Terminal will echo back the spaces.
I'm running the MacPorts port of pygame (py-game), which depends on Python 2.4, and I've also used python_select to make python24 the active version.
The default py-game on Mac Ports has the problem you describe. A work-around is to install the py-game2.6 target instead. This works for me with OS X 10.6.7.
Can you check if the pygame.K_* constants actually correspond to the correct values for your keyboard? For the record I tried your code in Linux on a MacBook Pro and it seems to be working fine.
精彩评论