cocos2d-x 详解之 CCAction(动作)

       关于动作部分,总的来说使用起来比较简单,创建一个动作,然后让可渲染节点如精灵去执行这个动作即可。cocos2dx提供了很多类型的动作,使用起来也很方便。本节重点介绍动作CCAction的子类之一时间动作:CCFiniteTimeAction:

       时间动作又分:瞬时动作(CCActionInstant)和持续动作(CCActionInterval)

       瞬时动作:指动作立马执行,不需要持续时间,如位置的瞬移。

       持续动作:需要给动作指定持续时间,如从A移动到B,设定3秒移动时长。

      瞬时动作

    CCSprite* pSprite = CCSprite::create("HelloWorld.png");//创建一个精灵  
    pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));  
    this->addChild(pSprite, 0);  
    //通常用父类CCActionInstant来接收不同的子类对象实现多态      
    CCActionInstant* it1 = CCFlipX::create(true);//创建x轴翻转动作  
    CCActionInstant* it2 = CCFlipY::create(true);//创建y轴翻转动作  
    pSprite->runAction(it2);//执行动作it2  
  
    CCActionInstant* it3 = CCPlace::create(ccp(200,200));//放置动作,实现位置瞬移  
    pSprite->runAction(it3);  
  
    CCActionInstant* it4 = CCHide::create();//隐藏动作,等同于设置setVisible(false)  
    CCActionInstant* it5 = CCShow::create();//显示动作,等同于设置setVisible(true)  
    pSprite->runAction(it4);  
  
    CCActionInstant* it6 = CCToggleVisibility::create();//可见开关动作,即原来是隐藏的话改为显示,显示改为隐藏  
    pSprite->runAction(it6);  
  
    //重要的函数回调动作CCCallFunc,它有三个子类,CCCallFuncN、CCCallFuncND、CCCallFuncO,它们之间只是回调函数的参数不同  
    CCActionInstant* it7 = CCCallFunc::create(this,callfunc_selector(MyClass::callBack1));//callback1自定义的函数,用来处理动作执行到此处该做的事,无参数  
    CCActionInstant* it8 = CCCallFuncN::create(this,callfunc_selector(MyClass::callBack2));//callback2带参数(CCNode* pSender),参数是执行此动作CCNode对象
    CCActionInstant* it9 = CCCallFuncND::create(this,callfunc_selector(MyClass::callBack3));//callback3带参数(CCNode* pSender,void* data),data是关联数据
    CCActionInstant* it10 = CCCallFuncO::create(this,callfunc_selector(MyClass::callBack4));//callback4带参数(CCObject* obj),任何对象都可调用此动作

     持续动作

      持续动作时动作系统中最为复杂的动作分类,包含了大量的动作子类。持续动作类中的每一种从类名上看通常都分为两中,“To”类型和“By”类型,to类型就是一次性指定从哪个状态到哪个状态,并指定动作持续时间,如5秒内从(0,0)移动到(200,200);而by类型是指定每一帧状态的该变量,如每一帧移动(-10,10):x轴反方向移动10,y轴正方向移动10。

动作种类着实很多,而且使用起来也较为相似,所以直接给一个链接做参考,里面列出了所有动作的使用,包括特效动作: cocos2dx常见的46中+22中动作详解

 

posted on 2014-03-23 18:09  子弹壳  阅读(206)  评论(0编辑  收藏  举报

导航