cocos2d-x 3.0的回调用函数

来源:互联网 发布:淘宝库存同步软件 编辑:程序博客网 时间:2024/05/21 17:38

Ref.h中定义了:

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 callfunc_selector(_SELECTOR) static_cast<cocos2d::SEL_CallFunc>(&_SELECTOR)#define callfuncN_selector(_SELECTOR) static_cast<cocos2d::SEL_CallFuncN>(&_SELECTOR)#define callfuncND_selector(_SELECTOR) static_cast<cocos2d::SEL_CallFuncND>(&_SELECTOR)#define callfuncO_selector(_SELECTOR) static_cast<cocos2d::SEL_CallFuncO>(&_SELECTOR)#define menu_selector(_SELECTOR) static_cast<cocos2d::SEL_MenuHandler>(&_SELECTOR)#define schedule_selector(_SELECTOR) static_cast<cocos2d::SEL_SCHEDULE>(&_SELECTOR)

其中typedef部分,定义了SEL_CallFunc,表示一个函数指针,一个指向(函数返回值类型为void、参数表为空)的指针。

其他typedef类似。


而#define部分的意思是,static_cast<Type>是C++推荐的类型转换方式。static_cast<cocos2d::SEL_CallFunc>(&_SELECTOR),意思就是把_SELECTOR函数指针转换成SEL_CallFunc类型的函数指针。宏定义callfunc_selector(_SELECTOR)就是过程。

0 0
原创粉丝点击