cocos2d中的function和CC_CALLBACK组合

本文详细介绍了Cocos2d-x中`addImageAsync`函数与`CC_CALLBACK_0`配合使用的情况,探讨了`function`模板和`std::bind`的结合应用。通过示例解释了`bind`如何预先绑定参数,使得无参数的`readCallback`函数能够与需要参数的`function`模板匹配,从而在异步加载过程中正确调用回调函数。
摘要由CSDN通过智能技术生成

首先我们来看一个异步加载的addImageAsync函数

Director::getInstance()->getTextureCache()->addImageAsync(p, CC_CALLBACK_0(LoadingScene::readCallback, this));

addImageAsync函数定义:

void TextureCache::addImageAsync(const std::string &path, const std::function<void(Texture2D*)>& callback)

第一个参数是接收资源地址,第二个参数是c++11的 function模板,包装一个返回值为void,参数为Texture2d*的指针。那么按照常理,就应该接收一个返回值为viod,参数为Textrue2d的函数。但是大家再来看看翔仔写的readCallback函数:

void LoadingScene::readCallback()
{
    ///
}

大家可以看到该函数返回值为void,但是没有参数!但是在上面的代码中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值