cocos2dx自定义动作

CallFunc和CallFuncN继承ActionInstant. 是cocos2dx 3.0的自定义动作。可以调用一个函数。一般在动作序列里面最后调用。 两者的区别:
CallFunc:调用的函数没有参数。需要用到 CC_CALLBACK_0,
# define CC_CALLBACK_0(__selector__,__target__, ...) std : :bind( &__selector__,__target__, ##__VA_ARGS__)  
CC_CALLBACK_0使用bind。通过绑定实参生成function对象。下面例子,回调函数有2个参数。但是通过绑定后生成的function没有参数了
 CallFunc : :create( CC_CALLBACK_0(ActionCallFuncO : :callback,  this, _grossini,  true)),
void ActionCallFuncO : :callback(Node * node,  bool cleanup)
{
    node - >removeFromParentAndCleanup(cleanup);
}
CallFuncN: 调用的函数需要一个Node。需要用到 CC_CALLBACK_1。
# define CC_CALLBACK_1(__selector__,__target__, ...) std : :bind( &__selector__,__target__, std : :placeholders : :_1, ##__VA_ARGS__) 

该声明中有一个占位符留给Node*类型的实参,传递进来。

对c++11的bind和function理解又加深了。





来自为知笔记(Wiz)


你可能感兴趣的:(cocos2dx自定义动作)