2016-07-17 3 views
1

내 문제는 다소 간단합니다. 내 경우에 사용자가 키를 누른 상태에서 루프를 실행하고 싶습니다. R.키보드 키를 눌렀을 때 루프가 발생합니다.

캐치 : 내가하지 않는다 을 사용하면 PyGame을 사용할 수 있으며 콘솔 창에는 포커스가 지정되지 않습니다. (선택됨)

편집 :이 질문에 중복 된 것으로 표시되었습니다. 다른 스레드를 확인한 결과이 둘 사이의 주요 차이점은이 키를 가지고 있는지 확인해야한다는 것입니다. python/console 창이 포커스가 맞지 않아 선택되지 않았습니다. 경우

+0

키보드 입력을 수신하려면 스레드가 필요합니다. –

+0

@ cricket_007 무엇을 시도해야할지 모르겠다. Google에서 찾은 모든 것은 PyGame을위한 것이었다. ** 편집 : ** 아무도 나에게 도움을 줄 수 없으므로 멀티 스레딩 사용 방법을 알려줘야합니다. – spikespaz

+2

중복? http://stackoverflow.com/questions/11918999/key-listeners-in-python –

답변

0

당신은 Windows를 사용하는 :

MSVCRT 아마 당신은 (https://docs.python.org/2/library/msvcrt.html) 찾고있는 라이브러리입니다. 이 LIB는 '키 누르기를 읽을 수 기다리고있는 경우에 true를 돌려줍니다'는 kbhit 기능이 포함되어 있습니다 : 그것은 (영원히 루프를 유지하지 않도록,

from msvcrt import kbhit, getch 

while (kbhit()): 
    getch() 
    #code 

는 getch 키를 읽어을 kbhit 기능 때문에 여전히 읽지 않은 키를 감지 함).

+0

감사! 하나의 사소한 문제 : 콘솔 창에 초점이 맞지 않으면 키 누름을 감지 할 수 없습니다. while True : kbhit() 및 getch() == b'r ':'''이면' – spikespaz

관련 문제