2012-05-28 14 views
5

सवाल यह है कि मुझे इसके बारे में कहना है। मुझे एंड्रॉइड एनडीके में back, menu आदि जैसे विशेष कीप्रेस को संभालने की आवश्यकता है। मैं Cocos2dX का उपयोग कर रहा हूं ताकि यदि आप मुझे कोकोस 2 डीएक्स निर्दिष्ट उत्तर दे सकें जो बहुत अच्छा होगा। CCKeypadDelegate सेएंड्रॉइड एनडीके: कोकोस 2 डीएक्स में बैक की प्रेस को कैसे संभालें?

class CC_DLL CCKeypadDelegate 
{ 
public: 
    // The back key clicked 
    virtual void keyBackClicked() {} 

    // The menu key clicked. only avialble on wophone & android 
    virtual void keyMenuClicked() {}; 
}; 

CCLayer संभालते हैं:

उत्तर

7

cocos2dx में, प्रत्येक CCLayer हो जाता है निम्न विधियों है कि उन्हें करने के लिए कार्यक्षमता जोड़ने के लिए ओवरराइड किया जा सकता। और प्रत्येक स्क्रीन इन कार्यों को कार्यान्वित कर सकती है।

+2

मुझे लगता है कि आप setKeypadEnabled (सही) को जोड़ने के लिए आवश्यकता हो सकती है; कहीं इसे काम करने के लिए। –

+1

बस यह सुनिश्चित करें कि आप coco2d-x 2.1 या उच्चतर का उपयोग कर रहे हैं। – Ankur

1

Cocos2d-x में आपको लगता है कि लागू

virtual void keyBackClicked(); 

क्या करना है और यह भी इस

this->setKeyPadEnable(true); 
सीपीपी कक्षा में

1

कीपैड सक्षम करें: this->setKeypadEnabled(true);

अवहेलना ऑनकेलेटेड एम ethod: कीकोड के लिए virtual void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);

की जांच:

void GameScene::onKeyReleased(EventKeyboard::KeyCode keyCode, cocos2d::Event *event) 
{ 
    if (keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE) { 
     CCLOG("You pressed back button"); 
    } 
    else if(keyCode == EventKeyboard::KeyCode::KEY_MENU) 
    { 
     CCLOG("You pressed menu button"); 
    } 
} 
0

अपनी कक्षा CClayer साथ वारिस नहीं है, तो आप इस JNI कॉल के माध्यम से संभाल सकते हैं। Cocos2dxGLSurfaceView.java में आप वापस संभालने के लिए और onKeyDown समारोह से मेनू कुंजी

public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) 
संबंधित मुद्दे