强烈要求引擎组加入自定义参数列表回调,参考boost::bind

创建一个sprite,让他五秒后自己删除
本来想写成这样
CCDelayTime *delay = CCDelayTime::create(5);
CCCallFunc *call_func = CCCallFunc::create(
sprite, callfunc_selector(CCNode::removeFromParentAndCleanup));
CCFiniteTimeAction *seq = CCSequence::create(
delay, call_func, NULL);
sprite->runAction(seq);
发现不行,参数列表不匹配,
想不到好的方法,现在是继承ccsprite,写个函数匹配参数,吐血,难道让我改底层代码支持
typedef void (CCObject::*SEL_SCHEDULE)(bool);

翻了下代码,发现目前就支持这么多回调,参数定得太死了
typedef void (CCObject::*SEL_SCHEDULE)(float);
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)
#define menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)
#define event_selector(_SELECTOR) (SEL_EventHandler)(&_SELECTOR)
#define compare_selector(_SELECTOR) (SEL_Compare)(&_SELECTOR)

强烈要求引擎组加入自定义参数列表回调,参考boost::bind,极大简化开发啊,不想依赖boost的话,可以抽取bind部分代码,量也不大的,我都想自己加一个了~