这个问题就是我要说的。我需要知道如何处理 android NDK 中的特殊按键back
,例如menu
等。我正在使用 Cocos2dX,所以如果你能给我一个 Cocos2dX 特定的答案,那就太好了。
问问题
5225 次
4 回答
7
在 cocos2dx 中,每个CCLayer
都有以下方法,这些方法可以被覆盖以向它们添加功能:
class CC_DLL CCKeypadDelegate
{
public:
// The back key clicked
virtual void keyBackClicked() {}
// The menu key clicked. only avialble on wophone & android
virtual void keyMenuClicked() {};
};
CCLayer
继承自CCKeypadDelegate
。每个屏幕都可以实现这些功能。
于 2012-05-28T08:49:55.343 回答
1
在 Cocos2d-x 你必须做那个实现
virtual void keyBackClicked();
还有这个
this->setKeyPadEnable(true);
在 .cpp 类中
于 2013-11-13T11:34:35.330 回答
1
启用键盘:this->setKeypadEnabled(true);
覆盖 onKeyReleased 方法:
virtual void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);
检查键码:
void GameScene::onKeyReleased(EventKeyboard::KeyCode keyCode, cocos2d::Event *event)
{
if (keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE) {
CCLOG("You pressed back button");
}
else if(keyCode == EventKeyboard::KeyCode::KEY_MENU)
{
CCLOG("You pressed menu button");
}
}
于 2014-01-20T11:53:22.567 回答
0
如果您的类不是用 继承的CClayer
,那么您可以通过JNI
调用来处理它。在您从功能Cocos2dxGLSurfaceView.java
中处理返回和菜单键onKeyDown
public boolean onKeyDown(final int pKeyCode, final KeyEvent pKeyEvent)
于 2014-01-31T11:54:56.343 回答