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」でも同じ扱いらしい。
▫️参考にしたページ
Cocos2d-x 3.1以降でのAndroidバックキーのKeyCodeはKEY_ESCAPEに
cocos2d-x 3.1 では Android のバックキーのキーコードは `KEY_ESCAPE` を使う。Qiite
c++ - Back and Home buttons pressed event for Android devices (cocos2d-x 3) - Stack Overflow
コメントをお書きください