1.cocos中的回调函数有如下种类:
可以看出,这些callfunc实质就是返回一个函数指针~
typedef void (CCObject::*SEL_SCHEDULE)(float);// 用来调update
typedef void (CCObject::*SEL_CallFunc)();// 用来自定义无参回调
typedef void (CCObject::*SEL_CallFuncN)(CCNode*);// 带执行者回调
typedef void (CCObject::*SEL_CallFuncND)(CCNode*, void*); // 带一个自定参数的回调
typedef void (CCObject::*SEL_CallFuncO)(CCObject*);
typedef void (CCObject::*SEL_MenuHandler)(CCObject*);
typedef void (CCObject::*SEL_EventHandler)(CCEvent*);
typedef int (CCObject::*SEL_Compare)(CCObject*);
#define schedule_selector(_SELECTOR) (SEL_SCHEDULE)(&_SELECTOR)
#define callfunc_selector(_SELECTOR) (SEL_CallFunc)(&_SELECTOR)
#define callfuncN_selector(_SELECTOR) (SEL_CallFuncN)(&_SELECTOR)
#define callfuncND_selector(_SELECTOR) (SEL_CallFuncND)(&_SELECTOR)
#define callfuncO_selector(_SELECTOR) (SEL_CallFuncO)(&_SELECTOR)