2012-05-28 28 views

回答

7

在cocos2dx,各CCLayer獲取可重寫功能添加到他們下面的方法:

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繼承CCKeypadDelegate。每個屏幕都可以實現這些功能。

+2

我想你可能需要添加setKeypadEnabled(真);在某個地方讓它工作。 –

+1

只要確定您使用的是coco2d-x 2.1或更高版本。 – Ankur

1

在cocos2d-x 你要做的是 實現

virtual void keyBackClicked(); 

而且這個

this->setKeyPadEnable(true); 

中的.cpp類

1

啓用鍵盤:this->setKeypadEnabled(true);

覆蓋onKeyReleased m 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)