2012-05-28 15 views

risposta

7

In cocos2dx, ogni CCLayer ottiene i seguenti metodi che possono essere sovrascritte per aggiungere funzionalità a loro:

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 eredita da CCKeypadDelegate. E ogni schermo può dare attuazione a queste funzioni.

+2

Penso che potrebbe essere necessario aggiungere setKeypadEnabled (true); da qualche parte per farlo funzionare. –

+1

Assicurati di utilizzare coco2d-x 2.1 o versione successiva. – Ankur

1

In Cocos2d-x quello che dovete fare che implementano

virtual void keyBackClicked(); 

e anche questo

this->setKeyPadEnable(true); 

in classe cpp

1

Abilitazione tastiera: this->setKeypadEnabled(true);

Override onKeyReleased m etodo: virtual void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);

Controllare keyCode:

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

Se la classe non è ereditare con CClayer, allora si può gestire questo attraverso JNI chiamate. In Cocos2dxGLSurfaceView.java si maniglia posteriore e il tasto menu dal onKeyDown funzione

public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent) 
Problemi correlati