2016-09-24 13 views
1

나는 정말 this MarlIO 프로젝트에 감명 받았고 Python을 사용하여 비슷한 것을 구현하고 싶다. 그러나 에뮬레이터 OpenEmu이 작동하지만 파이썬을 사용하여 게임을 제어하는 ​​방법을 알지 못합니다.MacBook OpenEmu Python send keystrokes

몇 번의 키 입력만으로 문제가되지 않습니까?! Man, Mac에서는 그렇게 간단하지 않습니다.

In [41]: cmd1 
Out[41]: '\nosascript -e \'tell application "System Events" to key code 48 using {command down}\' \n' 

In [42]: cmd2 
Out[42]: '\nosascript -e \'tell application "System Events" to keystroke "a"\' \n' 

내가 먼저 openEmu로 전환 COMMAND + TAB를 사용하려면 다음 점프 에게를 기록했다. 그러나 두 명령을 실행했을 때 OpenEmu로 전환했을 때 키 입력처럼 보였습니다 이 전송되지 않았습니다. 나는 'CMD2'는 별도로, 그것은 명확하게 일하고 실행

그러나

enter image description here

. 그런 다음 다른 응용 프로그램에 대해 테스트했습니다. - 숭고하고 거기에서 작동하는 것 같았습니다.

enter image description here

사람이 정말 OpenEmu로 뭘 잘못했는지 올바른 방향으로 날 지점 수 있습니까?

답변

1

나는 몇 달 전에 그런 것을했다. 키 입력이 전송됩니다. 그러나 시스템 이벤트 키 스트로크는 거의 아무런 시간없이 지속되므로 에뮬레이터의 입력 메커니즘이이를 감지하지 못합니다.

AppleScript로 재생 시간을 요청할 수있는 방법을 찾을 수 없어서 Quartz event taps을 사용하여 문제를 해결했습니다. 예를 들어, "키를 누르기 시작하고 0.1 초 잠시 멈추고 키를 누르기 만하면됩니다" . Swift에서 해봤지만, ctype 모듈을 사용하여 Python에서이 작업을 수행 할 수 있어야합니다.

프레임 단위로 에뮬레이터와 동기화하기 어려울 수 있습니다. 나는 raised that problem with the project maintainers하지만 비교적 차가운 응답 때문에 나는 외면했다.

+0

맞춤 빌드가 AppleScript와 잘 작동합니까? 작동중인 스 니펫을 게시 할 수 있습니까? – Pwdr

+0

@Pwdr, 필자는 입력 지원을 구현하지 않았습니다. 이벤트 탭 예제를 원한다면 아마 하나를 제안 할 수 있습니다. – zneak

+0

그것은 최고 일 것입니다! – Pwdr