请高手指教
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);