cocos2d-x 网络下载图片

本文介绍使用cocos2d-x进行网络图片下载的实践,通过CImageDownloader类发送HTTP请求,下载图片并回调加载完成后的处理。代码包括检查本地资源是否存在并进行相应操作,支持多张图片下载。
摘要由CSDN通过智能技术生成

这是自己做项目时遇到的,这部分代码是自己在 前辈们的基础上自己在增加了少许代码,让代码更比较完整一些,亲测可用,方便实惠。不多说,上代码,感谢网上的前辈

CImageDownload.h

class CImageDownloader : public cocos2d::CCObject
{
	
public:

	virtual bool init();

	void SendHttpRequest(CCObject* pTarget, SEL_ImageNotification pSelector, const char* url, CCNode* node, const char* filename);
	void HttpRequestComplete(cocos2d::extension::CCHttpClient *sender, cocos2d::extension::CCHttpResponse *response);

	CREATE_FUNC(CImageDownloader);
public:
	//观察者ID
	CCString    observerID;
	//下载的图片加载到当前layer层上
	CCNode*    node;
	//是否使用遮罩
	bool        useMask;
	//图片文件名
	const char* filename;
};

CImageDownload.cpp

bool CImageDownloader::init()
{
	useMask = false;
	return true;
}

void CImageDownloader::SendHttpRequest(CCObject* pTarget, SEL_ImageNotification pSelector, const char* url, CCNode* node, const char* filename)
{
	std::string path = CCFileUtils::sharedFileUtils()->getWritablePath();
	path += filename;
	if (CCFileUtils::sharedFileUtils()->isFileExist(CCFileUtils::sharedFileUtils()->fullPathForFilename(path.c_str())))
	{
		CCSprite* spr = CCSprite::create(path.c_str());
		node->addChild(spr);
		return;
	}

	CCHttpRequest* request = new CCHttpRequest();
	this->node = node;
	this->filename = filename;
	if (this->node)
	{
		this->observerID = CCImageNotificationCenter::sharedImageNotificationCenter()->addObserver(filename,node,useMask);
	}
	request->setUrl(url);
	request->setRequestType(CCHttpRequest::kHttpGet);
	request->setResponseCallback(this, httpresponse_selector(CImageDownloader::HttpRequestComplete));
	CCImageNotificationCenter::sharedImageNotificationCenter()->m_ImageNotificationTarget = pTarget;
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值