cocos2d-x编译到android平台后,增加返回键和菜单键支持

在头文件中增加函数 
virtual void keyBackClicked();//android返回键 
virtual void keyMenuClicked();//android菜单键 

在init()函数中增加语句this->setIsKeypadEnabled(true);//android 返回键和菜单键支持

 //this->setKeypadEnabled(true);//android 返回键和菜单键支持  这个才是正确的

然后实现这两个函数就行了

 

 

1》监听返回键和菜单键

StartMenu.h

classStartMenu:public cocos2d::CCLayer
{
public:

virtualbool init();
virtualvoid keyBackClicked();//监听Android 返回键
virtualvoid keyMenuClicked();//监听Android 菜单键
};

StartMenu.cpp

boolStartMenu::init()
{
this->setKeypadEnabled(true);
...
}

voidStartMenu::keyBackClicked (){
...
}

voidStartMenu::keyMenukClicked (){
...
}

2》监听home键
AppDelegate.cpp类中的方法可以实现

 

void   AppDelegate :: applicationDidEnterBackground ()  
void   AppDelegate :: applicationWillEnterForeground ()  
 
 
 

如何在Cocos2dx中处理Android os的设备的Menu和Back案件的响应处理;

其实很简单,步骤如下:

1. 在需要响应的.h 中添加如下两个虚函数:

?
1
2
virtual  void  keyBackClicked(); //Android 返回键
virtual  void  keyMenuClicked(); //Android 菜单键

2. .cpp类中实现如上两个函数即可,如下,Himi这里测试使用,World是个Layer

?
1
2
3
4
5
6
7
void  World::keyBackClicked(){
     CCLog( "Android- KeyBackClicked!" );
}
 
void  World::keyMenuClicked(){
     CCLog( "Android- keyMenuClicked!" );
}

   3.初始化的时候记得开启: this->setIsKeypadEnabled(true);

你可能感兴趣的:(cocos2d-x)