2012-12-04 15 views
5

मैं एक छोटा सा गेम बनाने के लिए cocos2dx का उपयोग कर रहा हूं और मेरे गेम की गतिविधि में मैं बैक बटन को संभालने के लिए निम्न फ़ंक्शन देता हूं।एंड्रॉइड बैक बटन काम नहीं करता

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onDestroy() 
{ 
    android.os.Process.killProcess(android.os.Process.myPid()); 
    super.onDestroy(); 
} 

मेरी logcat में बटन मैं निम्न चेतावनी मिल वापस दबाने पर

keycharmap फ़ाइल

लोड करने में त्रुटि keycharmap फ़ाइल '/ प्रणाली/usr/keychars/QTouch-टचस्क्रीन खोला नहीं जा सकता .kcm.bin '। hw.keyboards.65538.devname = 'qtouch-touchscreen'

कॉल केडडाउन या ऑनस्ट्राय फ़ंक्शन पर नहीं पहुंचता है।

कृपया मुझे बताएं कि यह चेतावनी क्यों हुई है और मैं एंड्रॉइड बैक बटन को क्यों संभाल नहीं सकता।

कार्यों मेरी Cocos2d-x परियोजना में मेरी जावा एंड्रॉयड परियोजना पर ठीक से काम नहीं बल्कि

उत्तर

7

यह नीचे करने के लिए Cocos2dxGLSurfaceView.java

यह परिवर्तन फ़ाइल में यहाँ संभाला कर दिया गया है, जहां myActivity cocos2dActicity

 case KeyEvent.KEYCODE_BACK: 
        AlertDialog ad = new AlertDialog.Builder(myActivity) 
        .setTitle("EXIT?") 
        .setMessage("Do you really want to exit?") 
        .setPositiveButton("YES", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          ((Cocos2dxActivity)myActivity).finish(); 
         } 
        }) 
        .setNegativeButton("NO", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 

         } 
        }).create(); 
        ad.show(); 
      return true; 
     case KeyEvent.KEYCODE_MENU: 
+0

धन्यवाद यह है कि मैं – glo

+0

की तलाश में था, यह बाहर नहीं निकलता है, जब मैं इसे फिर से चलाता हूं, जहां से यह जारी रहता है। – McDermott

+0

आप यहां गतिविधि तक पहुंच कैसे प्राप्त करते हैं? –

1

आप टच सक्षम है? यदि नहीं, तो कृपया इसे सक्षम करें और आशा करें, यह आपकी समस्या को हल करेगा।

मुझे लगता है कि यह आपकी गेम स्क्रीन में बटन है।

+0

नहीं मैं एंड्रॉयड फोन पर वापस बटन का मतलब है। फोन पर होम बटन पूरी तरह से काम करता है लेकिन बैक बटन काम नहीं कर रहा है। – glo

2

वापस बटन दबाए रखने के लिए आपको अपनी गतिविधि की onBackPressed() विधि को दोबारा परिभाषित करने की आवश्यकता है, न कि इन दो तरीकों से।

+0

मैंने यह भी कोशिश की लेकिन कॉल 'बैकप्रेस()' विधि पर पहुंच नहीं रहा है। – glo

+0

ऐसा लगता है कि कोको कैप्रूट वापस दबा रहा है। इस संदेश को जांचें, शायद यही वह है जिसे आप ढूंढ रहे हैं http://www.cocos2d-x.org/boards/6/topics/5041?r=5059#message-5059 – Evos

+0

लेकिन इससे केवल तभी मदद मिलेगी जब मैं CCLayer को विरासत में मिला जो मैं नहीं हूँ क्या इस संकट को हल करने का कोई और तरीका है। – glo

2

बस अपने क्षुधा OnKeyDown के लिए ओवरराइड विधि के लिए लागू करता है,

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     // Here to implements for your code. 
     Log.d(TAG, "KEYCODE_BACK"); 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

हां मैं सिर्फ केडडाउन फ़ंक्शन पर ओवरराइड कर रहा हूं लेकिन यह मेरे जावा एंड्रॉइड प्रोजेक्ट पर ठीक काम करता है। यह सिर्फ मेरे cocos2d-x प्रोजेक्ट में काम नहीं करता है। – glo

1
है

यहां कोकोस 2 डी-एक्स संस्करण 3+

के लिए एक अपडेट है

यह केवल जवाब गया है (और काम करता है) here

के साथ ही एक थोड़ा कम पूरा यूट्यूब here

संबंधित मुद्दे