cocos2d-2.1rc0-x-2.1.3中有一个好用的CCRemoveSelf

简介:

只是好用而已,并没有什么新奇的。2.1.3版本中提供的动作CCRemoveSelf简化了一些操作。

细看来,在DEMO TestCPP的ActionsTest.cpp中,ActionRemoveSelf类示例中说明了这个动作的用法,非常简单:

1
2
3
4
5
6
7
8
  CCFiniteTimeAction*  action = CCSequence::create(
         CCMoveBy::create(  2 , ccp( 240 , 0 )),
         CCRotateBy::create(  2 ,   540 ),
         CCScaleTo::create( 1 , 0 .1f),
         CCRemoveSelf::create(),
         NULL);
 
     m_grossini->runAction(action);

用它可以实现在游戏的某个典型时刻屏幕上出现一个的动画,例如,出现玩家得分的数字小动画,作几个动作后立即消失,使可以参考上面的代码。

当然,ActionsTest.cpp中另一个类ActionCallFuncND也提供了传统的实现方法,稍微麻烦一些。相关代码如下:

1
2
3
4
5
6
7
8
9
10
11
  CCFiniteTimeAction* action = CCSequence::create(CCMoveBy::create( 2 .0f, ccp( 200 , 0 )),
         CCCallFuncND::create( this , callfuncND_selector(ActionCallFuncND::removeFromParentAndCleanup), ( void *) true ),
         NULL);
 
     m_grossini->runAction(action);
 
void  ActionCallFuncND::removeFromParentAndCleanup(CCNode* pSender,  void * data)
{
     bool bCleanUp = data != NULL;
     m_grossini->removeFromParentAndCleanup(bCleanUp);
}

也就是说,这种老方式下,临时性的精灵,需要我们自己调用CCCallFuncND回调函数并通过调用removeFromParentAndCleanup来自己去除。



















本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1531754 ,如需转载请自行联系原作者

相关文章
|
3月前
|
存储 PHP Android开发
cocos2dx luajit相关
cocos2dx luajit相关
19 0
OpenJDK8:只有x86和sparcv9才能出32位的版本
OpenJDK8:只有x86和sparcv9才能出32位的版本
58 0
|
UED
什么是RC版本?
常见的 RC 版本,全称是 Release Candidate。其中 Release 是发行、发布的意思。Candidate 是候选人的意思,用在软件或者操作系统上就是候选版本。因此 Release Candidate 就是发行候选版本。
526 0
|
数据库 Android开发 数据库管理
|
安全 API 开发工具