Cocos2d-x Ver 3.x AndroidバックキーのKeyCodeはKEY_ESCAPEに


Androidのバックキーイベント取得について


.h ヘッダーファイルにonKeyReleasedを定義

public:
    void onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event *event);



.cppファイルのinit()にイベントリスナーを追加

bool HogeScene::init()
{
    if ( !Layer::init() )
    {
         return false;
    }
 
    auto keyboardListener = cocos2d::EventListenerKeyboard::create();
    keyboardListener->onKeyReleased = CC_CALLBACK_2(HogeScene::onKeyReleased, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(keyboardListener, this);



onKeyReleased()でバックキーのイベントを取得

void HogeScene::onKeyReleased(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event * event)
{
    if (keyCode == EventKeyboard::KeyCode::KEY_ESCAPE)
    {
        Director::getInstance()->end(); // アプリを終了させる
    }
}


KeyCodeを「KEY_ESCAPE」としているが「KEY_BACK」でも同じ扱いらしい。


 

目 次