Событие нажатия кнопок "Назад" и "Домой" для устройств 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.