【iOS-cocos2d-X 游戏开发之十五】Cocos2dx中响应Android的Back按键

  • 本帖最后由 xiaominghimi 于 2012-4-26 10:37 编辑 *
本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/792.html

          ? 点击订阅 ? 本博客最新动态!及时将最新博文通知您!本篇介绍两个常用知识,一个是粒子的自动释放机制函数,因为不少童鞋说cocos2dx为什么没有? 其实是没找到,这里特意拿出来说下!另外一个是如何响应Android的Menu菜单和Back返回事件的方法;首先对于Cocos2dx中对于粒子自动释放的函数Himi这里给出,不少童鞋都在群里或者论坛有问道!//添加一个粒子特效
    CCParticleSystem *tempSystem =  ARCH_OPTIMAL_PARTICLE_SYSTEM::particleWithFile("test.plist");
    //tempSystem.positionType=kCCPositionTypeRelative;//备注1
    tempSystem->setPositionType(kCCPositionTypeFree);
    this->addChild(tempSystem);
    tempSystem->setIsAutoRemoveOnFinish(true);//这里就是粒子自动释放的函数啦。~

这里setIsAutoRemoveOnFinish(bool bl);函数就是自动释放内存的函数啦,那么这里细心的童鞋会看到
备注1 ,备注函数是设置粒子的移动类型为相对位置,具体请查看:http://www.himigame.com/iphone-cocos2d/472.htmlOK,下面Himi介绍如何在Cocos2dx中处理Android os的设备的Menu和Back案件的响应处理;其实很简单,步骤如下:1. 在需要响应的.h 中添加如下两个虚函数:

virtual void keyBackClicked();//Android 返回键
virtual void keyMenuClicked();//Android 菜单键
  1. .cpp类中实现如上两个函数即可,如下,Himi这里测试使用,World是个Layer
void World::keyBackClicked(){
    CCLog("Android- KeyBackClicked!");
}
 
void World::keyMenuClicked(){
    CCLog("Android- keyMenuClicked!");
}

3.初始化的时候记得开启:
this->setIsKeypadEnabled(true);OK,下面Himi将项目编译后运行Android版的项目:运行结果如下:http://www.himigame.com/wp-content/uploads/2012/04/1111.png

然后Himi尝试点击Menu和Back按键,打印如上图所示,正常处理到了;