2016-09-24 9 views
1

私は本当にthis MarlIOプロジェクトに感銘を受け、Pythonを使って同様のものを実装したいと考えています。しかし、エミュレータOpenEmuが動作していますが、Pythonを使用してゲームを制御する方法はわかりません。MacBook OpenEmu Python send keystrokes

キーストロークを送信するだけの問題ではありませんか?マックではそれほど簡単ではありません。

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を使用して、ジャンプするを打つしたいです。しかし、私は2つのコマンドを実行すると、OpenEmuに切り替えただけで、キーストロークのように見えるは送信されませんでした。

enter image description here

私は別に 'CMD2' を実行したときにしかし、それは明らかに働いていました。 それから、私は別のアプリケーションに対して崇高なテストをしました。そこではうまくいくようでした。

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、私は入力サポートを実装するのをやめました。イベントタップの例が必要な場合は、おそらく1つを考え出すことができます。 – zneak

+0

それは素晴らしいだろう! – Pwdr