天天看点

【IOS-COCOS2D-X 游戏开发之十五】COCOS2DX中响应ANDROID的BACK(返回)与MENU(小房子)事件&&COCOS2DX自动释放粒子内存函数!

本篇介绍两个常用知识,一个是粒子的自动释放机制函数,因为不少童鞋说cocos2dx为什么没有? 其实是没找到,这里特意拿出来说下!另外一个是如何响应android的menu菜单和back返回事件的方法;

首先对于cocos2dx中对于粒子自动释放的函数himi这里给出,不少童鞋都在群里或者论坛有问道!

1

2

3

4

5

6

//添加一个粒子特效

    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 ,备注函数是设置粒子的移动类型为相对位置,具体请查看:

<a href="http://www.himigame.com/iphone-cocos2d/472.html" target="_blank">【ios-cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与layer之间的坐标问题;</a>

ok,下面himi介绍如何在cocos2dx中处理android os的设备的menu和back案件的响应处理;

其实很简单,步骤如下:

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

    virtual void keybackclicked();//android 返回键

    virtual void keymenuclicked();//android 菜单键

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

7

void world::keybackclicked(){

    cclog("android- keybackclicked!");

}

void world::keymenuclicked(){

    cclog("android- keymenuclicked!");

   3.初始化的时候记得开启: this-&gt;setiskeypadenabled(true);

ok,下面himi将项目编译后运行android版的项目:

运行结果如下:

【IOS-COCOS2D-X 游戏开发之十五】COCOS2DX中响应ANDROID的BACK(返回)与MENU(小房子)事件&amp;&amp;COCOS2DX自动释放粒子内存函数!

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

继续阅读