2014-06-05 26 views
5

Tôi đã làm điều này để bắt HomeBack nút nhấn sự kiện trên các thiết bị Android:Back và Home nút nhấn kiện cho các thiết bị Android (cocos2d-x 3)

Overrided void Layer::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event) chức năng như thế này:

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

cũng được gọi là setKeypadEnabled(true); trong chức năng init của MyLayer. Nút Backspace đóng trò chơi trên cửa sổ, nhưng không có phản ứng trên nút Home. Ngoài ra trên Android không có gì xảy ra khi tôi nhấn Home hoặc Back. Làm thế nào để có được điều này làm việc trên cocos2d-x 3.1?

+1

Bạn không thể ghi đè tác vụ nút trang chủ trong Android. –

Trả lời

7

Để bắt nút Quay lại, bạn cần sử dụng EventKeyboard::KeyCode::KEY_ESCAPE. Để tạm dừng trò chơi khi Home được nhấn, hãy sử dụng void AppDelegate::applicationDidEnterBackground(). Không có cách nào để ghi đè lên sự kiện nhấn nút trang chủ.

2

Bạn có thể sử dụng EventKeyboard::KeyCode::KEY_BACK hoặc EventKeyboard::KeyCode::KEY_ESCAPE để bắt sự kiện nút quay lại Android.

Các vấn đề liên quan