2010-04-27 71 views
7

Tôi gặp sự cố khi chạy ứng dụng dựa trên pygame trên Mac OS X qua Thiết bị đầu cuối. Các sự kiện đầu vào như tổ hợp phím chuyển đến Terminal thay vì ứng dụng Python của tôi và được phát hiện bởi pygame.Đầu vào pygame của Mac OS X vào Terminal thay vì Python

Ví dụ, tôi có kịch bản thử nghiệm sau đây:

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" 

Cả K_ESCAPE cũng không K_SPACE sẽ được xử lý bởi kịch bản này khi tôi chạy nó từ một X Terminal Mac OS, nhưng nhà ga sẽ echo lại các không gian.

Tôi đang chạy cổng MacPorts của pygame (py-game), phụ thuộc vào Python 2.4 và tôi cũng đã sử dụng python_select để tạo python24 phiên bản hoạt động.

+0

Cửa sổ bật lên có bật lên không? Bạn đã thử tập trung vào cửa sổ đó chưa? – nosklo

+0

Có nó bật lên một cửa sổ, và có tôi đã cố gắng cho tập trung vào cửa sổ đó. Dường như chấp nhận tiêu điểm nhưng đầu vào vẫn xuất hiện trong Terminal. – Parappa

Trả lời

2

Trò chơi py mặc định trên Cổng Mac có vấn đề bạn mô tả. Một công việc xung quanh là cài đặt mục tiêu py-game2.6 để thay thế. Điều này làm việc cho tôi với OS X 10.6.7.

1

Bạn có thể kiểm tra xem hằng số pygame.K_ * có thực sự tương ứng với các giá trị chính xác cho bàn phím của bạn không? Đối với các bản ghi tôi đã thử mã của bạn trong Linux trên một MacBook Pro và nó có vẻ là làm việc tốt.

+0

Tôi đã thử mã này trong Linux và nó hoạt động tốt. Tôi khá chắc chắn vấn đề là với môi trường Terminal của tôi và/hoặc cấu hình Pygame, nhưng tôi không biết nó là gì. – Parappa

+1

Một đề xuất khác (trong trường hợp bạn chưa giải quyết được điều này), bạn có chắc chắn 'python_select' đang hoạt động theo cách bạn muốn không? http://stackoverflow.com/questions/1768881/how-to-make-python-select-work-for-python-command – aganders3