zoukankan      html  css  js  c++  java
  • [cocos2d-x]关于CC_CALLBACK

    CC_CALLBACK的代码

    // new callbacks based on C++11
    #define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)
    #define CC_CALLBACK_1(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, ##__VA_ARGS__)
    #define CC_CALLBACK_2(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, ##__VA_ARGS__)
    #define CC_CALLBACK_3(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, ##__VA_ARGS__)

    CC_CALLBACK中的一些参数

    _selector_:回调函数指针
    _target_:执行这个回调函数的具体对象指针
    std::placeholders::_1:占位符
    _VA_ARGS_:可变长参数列表

    CC_CALLBACK后面跟的数字表示回调函数所带有的参数个数

    举例

        listner->onTouchBegan = CC_CALLBACK_2(GameTest::onTouchBegan,this);//带有两个占位符
        listner->onTouchMoved = CC_CALLBACK_2(GameTest::onTouchMoved, this);//带有两个占位符
        listner->onTouchEnded = CC_CALLBACK_2(GameTest::onTouchEnded, this);//带有两个占位符

    库中的一些宏定义

    typedef void (Ref::*SEL_CallFunc)();
    typedef void (Ref::*SEL_CallFuncN)(Node*);
    typedef void (Ref::*SEL_CallFuncND)(Node*, void*);
    typedef void (Ref::*SEL_CallFuncO)(Ref*);
    typedef void (Ref::*SEL_MenuHandler)(Ref*);
    typedef void (Ref::*SEL_SCHEDULE)(float);
    
    #define CC_CALLFUNC_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_CallFunc>(&_SELECTOR)
    #define CC_CALLFUNCN_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_CallFuncN>(&_SELECTOR)
    #define CC_CALLFUNCND_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_CallFuncND>(&_SELECTOR)
    #define CC_CALLFUNCO_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_CallFuncO>(&_SELECTOR)
    #define CC_MENU_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_MenuHandler>(&_SELECTOR)
    #define CC_SCHEDULE_SELECTOR(_SELECTOR) static_cast<cocos2d::SEL_SCHEDULE>(&_SELECTOR)
    https://github.com/li-zheng-hao
  • 相关阅读:
    洛谷 P3040 [USACO12JAN]贝尔分享Bale Share
    洛谷 P1994 有机物燃烧
    洛谷 P3692 [PUB1]夏幻的考试
    洛谷 P2117 小Z的矩阵
    洛谷 P1154 奶牛分厩
    洛谷 P1718 图形复原
    洛谷 P1900 自我数
    洛谷 P1964 【mc生存】卖东西
    洛谷 P1123 取数游戏
    hdu_2844_Coins(多重背包)
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053722.html
Copyright © 2011-2022 走看看