2012-08-09 42 views
6

मैं यूएसबी या ब्लूटूथ के माध्यम से कंप्यूटर पर एक (वास्तविक) एसएनईएस नियंत्रक को हुक करने के लिए एक Arduino Uno का उपयोग कर रहा हूं।क्या मैं जावा के रोबोट क्लास (Java.awt.robot) के साथ गेम पैड बटन प्रेस अनुकरण कर सकता हूं?

Arduino नियंत्रक के बटन प्रेस को कैप्चर करता है और snespad library का उपयोग करके रिलीज़ करता है। यह बटन प्रेस को संवाद करता है और वर्णों के रूप में रिलीज़ करता है (उदाहरण के लिए 'ए' जारी करने के लिए 'ए' दबाकर 'ए')। इसके बाद, एक जावा प्रोग्राम rxtx library का उपयोग कर सीरियल आउटपुट को सुनता है। अंत में, Java robotkeyPress और keyRelease का उपयोग करके प्रमुख प्रेस को अनुकरण करता है।

दुर्भाग्यवश, इस दृष्टिकोण में कुछ कमीएं हैं। मुख्य मुद्दा कुंजी मैपिंग है। मैंने मनमाने ढंग से फैसला किया कि कौन से बटन कुंजीपटल कुंजी होंगे।

जावा में कोई गेम पैड KeyEvents प्रतीत नहीं होता है। जब मैं "गेम पैड कीइवेंट" कहता हूं, तो मेरा मतलब है कि एंड्रॉइड एसडीके की तरह कुछ है: http://developer.android.com/reference/android/view/KeyEvent.html (ctrl + f "गेम पैड" या "बटन"।)

मेरा सवाल है, गेम पैड अनुकरण करने का कोई तरीका है जावा की रोबोट कक्षा का उपयोग कर कीस्ट्रोक की बजाय बटन प्रेस?

+0

पर जाने के लिए जाता है क्या कोई कारण नहीं है कि आप केवल प्रेस नहीं दबा सकते रोबोट का उपयोग कर रोल और 'एफ'? –

+0

क्षमा करें। मैं कह रहा था कि यदि आप उस वेब पेज पर "गेम पैड" या "बटन" खोजते हैं, तो आपको बटन एंड्रॉइड एसडीके शामिल होंगे। – keattsd

उत्तर

0

जावा में रोबोट कक्षा का उपयोग

आप निम्नलिखित तरीके से आभासी keypresses/विज्ञप्ति बना सकते हैं ...

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

आप में सक्षम होना चाहिए करने के लिए आसानी से अपने expierience से गेमपैड बटन को कीबोर्ड बटन पर मैप किया जाता है, केवल मैपिंग मैं जानता हूं कि मैं, जे, के, एल चारों ओर देखने के लिए जाता हूं और डब्ल्यू, ए, एस, डी