四、Cocos2dx之动作(CCAction)

一、内存自动回收

Cocos2d-x提供了一种类似java的内存回收机制,在java中定义的对象实例,不用担心他什么时候被释放,因为java虚拟机在变量不再使用时自动释放内存,而在C++中,不再使用这个变量时,我们需要手动释放(使用delete),不然我们的内存就会溢出,而在使用cocos2d-x时我们无需再关心这个问题,就是在

新创建实例时,加入autorelease,如上图所示。

这样就可以自动释放不再需要的内存了。

二、动作(CCAction)

在cocos2d-x引擎中,动作定义了在节点上进行通用的操作,他不依赖于节点吗,但是运行时需要指定节点作为目标,动作可以实现很多动画效果。

动作分为瞬时动作(基类CCActionInstance)和延时动作(基类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.直接设置(这个不算动作动画)

这个没什么好说的,就是直接设置位置,颜色,缩放度等内容,动作执行没有过程,直接看到结果

2.动作返回


其中reverse就是执行动作的反动作,回到原来的状态

3.消息机制


cocos2d-x也采用了消息机制,如上图中代码所示,在完成动作后调用相应函数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章