请高手指教
cocos2dx3.0进行android交互,即怎样响应android按键
可以在Android 按键监听器里通过Jni调C++的函数
我刚刚学这个,不是很懂,所有麻烦说的具体一点,不胜感激……
我现在是这么做的
现在init()里加上:
auto listener = EventListenerKeyboard::create();
listener->onKeyPressed = CC_CALLBACK_2(Test::onKeyPressed, this);
listener->onKeyReleased = CC_CALLBACK_2(Test::onKeyReleased, this);
this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
然后:
void Test::onKeyReleased(EventKeyboard::KeyCode keyCode, Event *pEvent)
{
if(keyCode== EventKeyboard::KeyCode::keyBack){
{
具体操作;
}
}
可是一点效果都没有
在cocos2dx开发中,有时候要设置监听Android的按键,如返回键、菜单键、Home键等。
其实该功能的实现功能很简单,返回键和菜单键的监听如下:
Test.h
class Test : public cocos2d::CCLayer
{
public:
virtual bool init();
//增加在Android平台下的返回键监听
virtual void keyBackClicked();
//增加在Android平台下的Menu键监听
virtual void keyMenuClicked();
}
Test.cpp
bool Test::init()
{
this->setKeypadEnabled(true);
}
void Test::keyBackClicked()
{
//在这里设置你点击返回键后的事件处理
}
void Test::keyMenuClicked()
{
//在这里设置你点击Menu键的事件处理
}
Home键的监听如下:
在cocos2dx自带的AppDelegate.cpp文件函数中实现
void AppDelegate :: applicationDidEnterBackground ()
{
//按Home键退出游戏时调用
}
void AppDelegate :: applicationWillEnterForeground ()
{
//之前按过home键,现在进入游戏时调用
}
```
现在已经实现了返回键和菜单键的监控,用的listener->onKeyReleased = CC_CALLBACK_2(Test::onKeyReleased, this)这个方法,可是现在其他键值还是不发响应,例如导航键的上下左右什么的,请帮忙研究一下,最好的说的详细一点,刚刚学cocos2dx,菜鸟一枚,我用的是cocos2dx3.0beta 版本;
你这个确实是好东西,值得收藏……

我用这个方法为什么只有菜单键有响应,返回键还是没有响应啊,具体的代码是怎么写的呢?
在init()加:
auto listener = EventListenerKeyboard::create();
listener->onKeyReleased =&](EventKeyboard::KeyCode keyCode, Event* event)
{
//返回键
if(keyCode == EventKeyboard::KeyCode::KEY_BACKSPACE)
{
Director::getInstance()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
//响应菜单键
else if (keyCode == EventKeyboard::KeyCode::KEY_MENU)
{
}
};
this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);