cocos2dx自定义动作

本文详细介绍了Cocos2dx 3.0中自定义动作CallFunc和CallFuncN的区别及应用场景。CallFunc适用于无参数的函数调用,而CallFuncN用于带有Node参数的函数。文章还探讨了如何使用CC_CALLBACK_0和CC_CALLBACK_1宏进行绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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理解又加深了。







转载于:https://my.oschina.net/1987times/blog/296500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值