Событие нажатия кнопок "Назад" и "Домой" для устройств Android (cocos2d-x 3)

Я сделал это, чтобы поймать Home а также Back События нажатия кнопок на устройствах Android:

перекрытая void Layer::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event) функционировать так:

void MyLayer::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event)
{
    if (keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE /*KeyboardEvent::KeyCode::Menu(KEY_BACKSPACE)*/)
    {
         CCLOG("You pressed back button");
         Director::getInstance()->end();
         exit(0);
    } 
    else if (keyCode == EventKeyboard::KeyCode::KEY_HOME)
    {
         CCLOG("You pressed home button");
         // pause the game
    }
}

также позвонил setKeypadEnabled(true); в init функция MyLayer, Кнопка Backspace закрывает игру на окнах, но не реагирует на кнопку Home. Также на Android ничего не происходит при нажатии Home или Back. Как заставить это работать на cocos2d-x 3.1?

2 ответа

Решение

Для ловли кнопки Назад нужно использовать EventKeyboard::KeyCode::KEY_ESCAPE, Для приостановки игры при нажатии Home используйте void AppDelegate::applicationDidEnterBackground(), Нет способа переопределить событие нажатия кнопки домой.

Вы можете использовать либо EventKeyboard::KeyCode::KEY_BACK или же EventKeyboard::KeyCode::KEY_ESCAPE для ловли события кнопки назад Android.

Другие вопросы по тегам