views:

147

answers:

1

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.

+1  A: 

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.

aganders3
I've tried this code in Linux as well and it works fine. I'm pretty sure the problem is with my Terminal environment and/or Pygame config, but I don't know what it is.
Parappa
One more suggestion (in case you haven't solved this), are you sure `python_select` is working the way you want it to?http://stackoverflow.com/questions/1768881/how-to-make-python-select-work-for-python-command
aganders3