2014-06-05 8 views
5

Zrobiłem to, aby złapać Home i Back przyciski nacisnąć wydarzenia na Android urządzeń:Powrót i domowe przycisków wciśnięty zdarzeń dla urządzeń z Androidem (cocos2d-x 3)

Overrided void Layer::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event) funkcja tak:

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 
    } 
} 

również o nazwie setKeypadEnabled(true); w init funkcji MyLayer. Przycisk Backspace zamyka grę w oknach, ale brak reakcji na przycisku Home. Również na Androidzie nic się nie dzieje po naciśnięciu przycisku Home lub Back. Jak uzyskać to działa na cocos2d-x 3.1?

+1

Nie można zastąpić działania przycisku głównego w systemie Android. –

Odpowiedz

7

Aby złapać przycisk Wstecz, należy użyć EventKeyboard::KeyCode::KEY_ESCAPE. Aby wstrzymać grę po naciśnięciu przycisku Strona główna, użyj void AppDelegate::applicationDidEnterBackground(). Nie ma możliwości zastąpienia zdarzenia naciśniętego przycisku Home.

2

Możesz użyć EventKeyboard::KeyCode::KEY_BACK lub EventKeyboard::KeyCode::KEY_ESCAPE do przechwytywania zdarzenia przycisku Wstecz systemu Android.

Powiązane problemy