2017-01-07 3 views
1

Mac OSX 10.10.3 및 Pygame 1.9.2에서 python3.4 사용 .12932 & SDL 1.2. 마우스 이벤트가 표시되는 동안 키보드 이벤트가 이벤트 루프에서 발견되지 않습니다. 키 스트로크는 도움이되지 않으면 서 터미널로 전달됩니다. 샘플 코드 :파이 게임 및 키보드 이벤트

import pygame, sys 
    from pygame.locals import * 

    pygame.init() 
    display = pygame.display.set_mode((500,500)) 

    while True: 
    #wait for a single event from the queue 
     pygame.event.pump() 
     events = pygame.event.get() 
     for event in events: 
      if event.type == QUIT: 
       print('quitting') 
       pygame.quit() 
       sys.exit() 
      else: 
       if event.type == KEYDOWN: 
        if event.key == K_LEFT: 
         print ("LEFT") 
        if event.key == K_RIGHT: 
         print ("RIGHT") 
        else: 
         print (event.key) 
       if event.type == KEYUP: 
        print('KEYUP') 
      if event.type == pygame.MOUSEBUTTONDOWN: 
       print('got MOUSEBUTTONDOWN') 

도움이 되셨습니까? 비슷한 이전 질문에 대한 대답은 내 문제를 해결하지 못했습니다.

+0

_ "이전 질문에 대한 답이 나와도 문제가 해결되지 않았습니다."- 어떻게 그렇게 할 수 있습니까? 다른 게시글에서 정확히 이해하지 못했던 점은 무엇입니까? –

+0

이 코드는 나를 위해 (리눅스에서) 작동합니다. 그러나 윈도우가 포커스를 가지고있는 경우에만 시스템이 키/마우스 이벤트를 파이 게임에 전송한다는 것을 알아야합니다. 당신이 터미널에 집중한다면 시스템은 키를 터미널로 직접 보냅니다. 어쩌면이게 당신 문제입니다. 다른 창에 집중하거나 PyGame 창을 숨기면 시스템이 PyGame에 키 이벤트를 보내지 않습니다. 그러면 아무 것도 할 수 없습니다. – furas

답변

0

현재로서는 중복으로 표시 할 수 없지만 컨텍스트가 this one과 일치합니다.

단편 : virtualenv 대신 python3 -m venv을 사용하십시오.