zoukankan      html  css  js  c++  java
  • Cocos2dx 中的CCCallFunc,CCCallFuncN,CCCallFuncND,CCCallFuncO比较

    首先看一张图片,表示了CCCallFunc的继承关系:

     
    1、CCCallFunc,回调,调用不带参数的函数:
     
    [cpp] 
    CCSequence::actions(CCCallFunc::actionWithTarget(this, callfunc_selector(ExtendActionLayer::onCallBack1)));  
    void ExtendActionLayer::onCallBack1()  
    {  
        flight->runAction(CCTintBy::actionWithDuration(0.5f, 255, 0, 255));  
    }  
     
    2、CCCallFuncO,回调,O表示CCObject,CCCallFunco可以带CCObject参数的函数
     
    [cpp]  
    CCSequence::actions(CCCallFuncO::actionWithTarget(this, callfuncO_selector(ExtendActionLayer::onCallBack2), CCInteger::create(2));  
      
    void ExtendActionLayer::onCallBack2(CCObject* data)  
    {  
        CCInteger* num = dynamic_cast<CCInteger*>(data);  
        pSender->runAction(CCTintBy::actionWithDuration(num->getValue(), 255, 0, 255));  
    }  
    3、CCCallFuncN,回调,N表示CCNode,表示可以传递Node*类型
     
    [cpp]  
    CCSequence::actions(CCCallFuncN::actionWithTarget(this, callfuncN_selector(ExtendActionLayer::onCallBack3)));  
    void ExtendActionLayer::onCallBack3(CCNode* pSender)  
    {  
       // 在这个例子里,pSender就是flight,因为是他执行了那个actionF  
       pSender->runAction(CCTintBy::actionWithDuration(1.0f, 255, 0, 255));  
    }  
     
     
    4、CCCallFuncND,回调,ND表示CCNode和Data,可以传递对象本身和一个void*类型参数,void*表示可以是任意类型的参数
     
    [cpp]  
    CCSequence::actions(CCCallFuncND::actionWithTarget(this, callfuncND_selector(ExtendActionLayer::onCallBack4), (void *)2));  
      
    void ExtendActionLayer::onCallBack4(CCNode* pSender, void* pData)  
    {  
       pSender->runAction(CCTintBy::actionWithDuration(static_cast<float>((int)pData), 255, 0, 255));  
    }  
  • 相关阅读:
    k8s nod rc service 使用
    Linux $() 与 ${}
    Linux set
    Linux 上传下载 rz 与sz
    Linux !的使用
    K8s创建pod yaml文件详解
    Kubernetes 安装
    Python 生成器
    k8s 使用详解
    微信 网页授权
  • 原文地址:https://www.cnblogs.com/wangtingyi/p/5589960.html
Copyright © 2011-2022 走看看