小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man
1.内存自动回收
Cocos2d—x提供了一种类似java的内存回收机制,,在java中定义的对象实例,不用担心他什么时候被释放,因为java虚拟机会在变量不再使用时自动释放内存,而在C++中,不再使用这个变量时,我们需要手动释放(使用delete),不然我们的内存就会溢出,而在使用cocos2d-x时我们无需再关心这个问题,就是在新创建实例时,加入autorelease,如图所示:
![](https://box.kancloud.cn/2016-04-26_571f3ef1c7cc9.gif)
这样就可以自动释放不再需要的内存了.
2.动作(CCAction)
在cocos2d-x引擎中,动作定义了在节点上进行通用的操作,他不依赖于节点,但是运行时需要指定节点作为目标,动作可以实现很多动画效果
动作分为瞬时动作(基类CCActionInstanse)和延时动作(基类CCActionInterval),实现动作包括几个步骤:
1.创建目标节点(一般是精灵)
` m_grossini = CCSprite::spriteWithFile(s_pPathGrossini);`
2.定义动作
~~~
CCActionInterval* actionTo = CCMoveTo::actionWithDuration(2, CCPointMake(s.width-40, s.height-40));
~~~
3.动作执行
m_grossini->runAction( CCSequence::actions(actionBy, actionByBack, NULL));
以下就通过test中的几个例子来分析动作
1.直接设置(这个不算动作动画)
![](https://box.kancloud.cn/2016-04-26_571f3ef1d62c5.gif)
这个没什么好说的,就是直接设置位置,颜色,缩放度等内容,动作执行没有过程,直接看到结果
2.动作返回
![](https://box.kancloud.cn/2016-04-26_571f3ef1e745d.gif)
其中reverse就是执行动作的反动作,回到原来的状态
3.消息机制
![](https://box.kancloud.cn/2016-04-26_571f3ef205037.gif)
cocos2d-x也采用了消息机制,如上图中代码所示,在完成动作后调用相应函数
刚开始研究此引擎,如有错误之处,希望大家多多指正
下一篇写一下触屏部分和test中的TransitionsTest
- 前言
- (1)--HelloWorld
- (2)--重要概念及Test例子结构
- (3)--动作(CCAction)
- (4)--触屏事件
- (5)--动作管理
- (6)--场景间切换效果
- (7)--CCProgressTimer
- (8)--场景特效
- (9)--粒子系统
- (10)--运动中的加速度效果
- (11)--拖动间隐效果
- (12)--图形绘制
- (13)--内存回收机制
- (14)--菜单项
- (15)--CCOrbitCamera
- (16)--LayerColor
- (17)--瓦片地图集
- (18)--Lable
- (19)--物理引擎box2d(1)
- (20)--物理引擎box2d(2)
- (21)--精灵类
- (22)--动画类
- (23)--其他(屏幕旋转,schedule,系统语言)
- (24)--音乐音效
- (25)--CCRenderTexture
- (26)--其他(游戏存档,切换高清,图片处理)
- (27)--CCMutableArray
- (28)--CCTMXTiledMap
- (29)-cocosBuilder
- (30)2.1新特性之CCClippingNode
- (31)2.1新特性CCPhysicsSprite
- (32)-cocos2d-x & javascript跨平台初体验