【iOS-cocos2d-X 游戏开发之十五】Cocos2dx中响应Android的Back与Menu&释放粒子内存

本文介绍了Cocos2dx中粒子系统的自动释放内存函数,并演示了如何在Cocos2dx项目中处理Android设备的Menu菜单和Back返回按键事件。

 本篇介绍两个常用知识,一个是粒子的自动释放机制函数,因为不少童鞋说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 ,备注函数是设置粒子的移动类型为相对位置,具体请查看:

【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;

OK,下面Himi介绍如何在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);

OK,下面Himi将项目编译后运行Android版的项目:

运行结果如下:

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










本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/969776,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值