zoukankan      html  css  js  c++  java
  • 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中动作详解

  • 相关阅读:
    软件工程课堂二
    大二下学期第三周总结
    大二第二个学期的自我介绍
    如何将非ARC的项目转换成ARC
    UIScrollView
    关于nil和 null和NSNull的区别及相关问题
    提高iOS开发效率的第三方框架等--不断更新中。。。
    iOS中常见的设计模式(MVC/单例/委托/观察者)
    TCP/IP、Http、Socket的区别
    iOS使用AVFoundation实现二维码扫描
  • 原文地址:https://www.cnblogs.com/gl5773477/p/3971140.html
Copyright © 2011-2022 走看看