7

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.

2
  • Does that pop up a pygame window? Did you try focusing that window? Commented Apr 27, 2010 at 5:49
  • Yes it pops up a window, and yes I tried giving that window focus. It seems to accept the focus but the input still appears in Terminal. Commented Apr 27, 2010 at 7:39

2 Answers 2

2

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.

Sign up to request clarification or add additional context in comments.

Comments

1

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.

2 Comments

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.
One more suggestion (in case you haven't solved this), are you sure python_select is working the way you want it to? stackoverflow.com/questions/1768881/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.