回到顶部

cocos读取plist文件

时间:5年前   作者:CnctSoft   浏览:199   [站内原创,转载请注明出处]

标签: Unity3D  

啥也不说直接上代码了

PlistUtils.cpp

#include "PlistUtils.h"

PlistUtils::PlistUtils(void)
{
}

CCRect PlistUtils::getRectFromPlist(const char* fileName,const char* key1,const char* key2,const char* key3){

	CCDictionary* pDictionary=(CCDictionary*)CCDictionary::createWithContentsOfFile(fileName);
	CCDictionary* content1=(CCDictionary*)pDictionary->objectForKey(key1);
	CCDictionary* content2=(CCDictionary*)content1->objectForKey(key2);
	CCString* object=(CCString*)content2->objectForKey(key3);
	
	const char* s=object->getCString();
	const short l=object->length();	

	char temp[4];
	short tempPosition=0;
	short tempRect[4];
	short tempRectPosition=0;

	for (int i=0;i<l;i++){
		if((*(s+i)=='{'||*(s+i)=='}'||*(s+i)==' ')&&i!=l-1){
			continue;
		}else if(*(s+i)==','||i==l-1){
			tempRect[tempRectPosition]=atoi(temp);
			//CCLog("%d",tempRect[tempRectPosition]);
			tempRectPosition++;

			tempPosition=0;
			temp[0]='\0';
			temp[1]='\0';
			temp[2]='\0';
			temp[3]='\0';
			
		}else{
			temp[tempPosition]=*(s+i);
			tempPosition++;
		}
	}



	return CCRectMake(tempRect[0],tempRect[1],tempRect[2],tempRect[3]);
}

/*通过plist文件
@fileName plist文件
@resBigPicName 组合图
@resSmallPicName 小图名称*/
CCSprite* PlistUtils::getSpriteFromPlist(const char* fileName, const char* resBigPicName, const char* resSmallPicName){
	CCSpriteFrameCache* frameCache = CCSpriteFrameCache::sharedSpriteFrameCache();	
	frameCache->addSpriteFramesWithFile(fileName, resBigPicName);
	CCSpriteFrame* spriteFrame = frameCache->spriteFrameByName(resSmallPicName);
	CCSprite* sprite = CCSprite::createWithSpriteFrame(spriteFrame);
	return sprite;
}
/*清除CCSpriteFrameCache*/
void  PlistUtils::spriteCacheDispose(){
	CCSpriteFrameCache* frameCache = CCSpriteFrameCache::sharedSpriteFrameCache();
	frameCache->autorelease();
	frameCache->retain();
}



PlistUtils.h
#ifndef __PLIST_UTILS_H__
#define __PLIST_UTILS_H__

#include "cocos2d.h"
USING_NS_CC;
using namespace cocos2d;

/*读取plist工具类*/
class PlistUtils
{
public:
	PlistUtils(void);
	/*获取plist 中资源所在的CCRECT*/
	static CCRect getRectFromPlist(const char* fileName,const char* key1,const char* key2,const char* key3);
	/*
		读取指定精灵
		@fileName plist路径
		@resBigPicName 大图地址
		@resSmallPicName 小图地址
	*/
	static CCSprite* getSpriteFromPlist(const char* fileName, const char* resBigPicName, const char* resSmallPicName);
	static void spriteCacheDispose();
};
#endif




内容均为作者独立观点,不代表八零IT人立场,如涉及侵权,请及时告知。

评论努力加载中...
暂无评论
暂无评论

手机扫码阅读

热门相关

加载中...
关于我们   联系我们   申请友链   赞助记录   站点地图
© 2014 - 2017 www.80iter.com All Rights Reserved. 京ICP备14042174号-1
本站遵循 CC BY 4.0 协议,转载请注明出处 。