2012-08-09 18 views
6

私はArduino Unoを使用して、(純正)SNESコントローラをUSBまたはBluetooth経由でコンピュータに接続しています。JavaのRobotクラス(Java.awt.robot)でゲームパッドのボタンを押すことはできますか?

Arduinoは、snespad libraryを使用してコントローラのボタンを押して離します。これは、ボタンのプレスとリリースを文字として通信します(例えば、Aを押すと「A」、「A」をリリースするには「A」)。次に、Javaプログラムはrxtx libraryを使用してシリアル出力を待ち受けます。最後に、Java robotkeyPresskeyReleaseを使用してキープレスをシミュレートします。残念ながら、このアプローチにはいくつかの欠点があります。主な問題はキーマッピングです。私は、どのボタンがどのキーボードキーになるかを任意に決めました。

Javaにゲームパッドがありません。KeyEvents。私が「ゲームパッドKeyEvent」と言うとき、私はAndroid SDKのものと同じものを意味します:http://developer.android.com/reference/android/view/KeyEvent.html(Ctrl + F「ゲームパッド」または「ボタン」)

私の質問はゲームパッドをシミュレートする方法ですかJavaのロボットクラスを使用したキーストロークの代わりにボタンを押しますか?あなたは私のexpierienceから簡単にできるはずです...あなたは、次のように仮想キー入力/リリースを作成することができます

Robot robo=new Robot(); 
robo.keyPress(KeyEvent.VK_A); 
//don't forget to release it else you'll land up in infinite loop 
robo.KeyRelease(KeyEvent.VK_A); 

歓声

+0

contを押してくださいrolと 'f'でロボットを使用していますか? –

+0

申し訳ありません。私はそのウェブページで「ゲームパッド」や「ボタン」を検索すると、Android SDKに含まれているボタンを見つけることができます。 – keattsd

答えて

0

ゲームパッドのボタンはキーボードのボタンにマッピングされています唯一のマッピング私はそれを知っていますj、k、lは周りを見回し、w、a、s、dは動くように移動します

0

をJAVA

におけるロボットクラスを使用して

関連する問題