Cocos2D-x3.x:cocostudio用户数据使用
来源:互联网 发布:淘宝上电棍叫什么 编辑:程序博客网 时间:2024/05/16 05:03
一.在编辑器设置“用户数据”,在代码中引用
在使用cocosstudio时,有很多时候需要从编辑器中传递一些自己定义的数据,cocosstudio已经为我们提供了一个非常方便的接口图如下:
1.cocosstudio中:
2.代码中引用:
二.数据解析
在上面我们已经在编辑器中设置好我们要传递的数据,如“len,2880|ybegin,0|yend,150”,并且我们在代码中取到了这个字符串,下面我们需要通过这个字符串来得到我们需要的数据:
1.添加代码
#pragma once#include "cocos2d.h"USING_NS_CC;class StringUtil : public Object {public:static StringUtil* sharedStrUtil();bool init();/** 用分隔符分割字符串,结果存放到一个列表中,列表中的对象为CCString */Array* split(const char* srcStr, const char* sSep);std::string getDateID(std::string _str, char* _id);private:static StringUtil* mStringUtil;};
#include "StringUtil.h"StringUtil* StringUtil::mStringUtil = NULL;StringUtil* StringUtil::sharedStrUtil(){if (mStringUtil == NULL) {mStringUtil = new StringUtil();if (mStringUtil && mStringUtil->init()) {mStringUtil->autorelease();}else {CC_SAFE_DELETE(mStringUtil);mStringUtil = NULL;}}return mStringUtil;}bool StringUtil::init(){return true;}Array* StringUtil::split(const char* srcStr, const char* sSep){CCArray* stringList = CCArray::create();int size = strlen(srcStr);/* 将数据转换为Cocos2d-x字符串对象 */CCString* str = CCString::create(srcStr);int startIndex = 0;int endIndex = 0;endIndex = str->_string.find(sSep);CCString* spliStr = NULL;/* 根据分隔符拆分字符串,并添加到列表中 */while (endIndex > 0) {spliStr = CCString::create("");/* 截取字符串 */spliStr->_string = str->_string.substr(startIndex, endIndex);/* 添加字符串到列表 */stringList->addObject(spliStr);/* 截取剩下的字符串 */str->_string = str->_string.substr(endIndex + 1, size);/* 查找下一个分隔符所在下标 */endIndex = str->_string.find(sSep);}/* 剩下的字符串也添加进列表 */if (str->_string.compare("") != 0) {stringList->addObject(CCString::create(str->_string));}return stringList;}std::string StringUtil::getDateID(std::string _str, char* _id){CCArray *strlist = StringUtil::sharedStrUtil()->split(_str.c_str(), "|");CCObject *object = NULL;CCARRAY_FOREACH(strlist, object){CCString *str = (CCString*)object;CCLOG(str->getCString());CCArray *strlist1 = StringUtil::sharedStrUtil()->split(str->getCString(), ",");CCObject *object1 = NULL;bool isreturn = false;CCARRAY_FOREACH(strlist1, object1){CCString *str1 = (CCString*)object1;CCLOG(str1->getCString());if (isreturn){return str1->getCString();}if (strcmp(str1->getCString(), _id) == 0){isreturn = true;}}}}
2.引用
在StringUtil::sharedStrUtil()->getDateID中传入之前获得的字符串,并且传入cocosstudio中用户数据里面缩写的关键字
三.纯c++的数据处理
static float getDateID(std::string _str,char* _id){const char* split = "|";const char* split1 = ",";char* p;char* pNext = NULL;p = strtok_s(const_cast<char*>(_str.c_str()), split, &pNext);while (p != NULL){log("p:%s", p);char* p1;char* pNext1 = NULL;p1 = strtok_s(p, split1, &pNext1);while (p1 != NULL){log("p1:%s", p1);if (strcmp(p1,_id)==0){p1 = strtok_s(NULL, split1, &pNext1);return atof(p1);}p1 = strtok_s(NULL, split1, &pNext1);}p = strtok_s(NULL, split, &pNext);}return 0;};
本文参考:Cocos2D-x游戏开发之二十四:自定义字符串分割类
0 0
- Cocos2D-x3.x:cocostudio用户数据使用
- Cocos2d-x3.2 UserDefault用户数据 使用
- cocos2d-x & CocoStudio UI使用
- cocos2d-x 2.2使用 cocostudio
- cocos2d-x3.x使用rapidjson
- Cocos2d-x3.2 UserDefault用户数据
- Cocos2d-x 深入解析系列 : 以XML文件方式保存用户数据--------------cocos2d-x3.0正式版本(7.13)
- cocos2d-x3.2对CocoStudio的支持
- Cocos2d-x3.x截屏
- 使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画
- cocos2d-x随记-粗略使用cocostudio制作scrollview
- cocos2d-x v3.0beta2使用cocostudio制作的动画
- 使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画
- 使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画
- 使用CocoStudio创建Cocos2d-x序列帧和骨骼动画
- cocos2d-x中使用cocostudio制作的场景或UI
- cocos2d-x 使用cocostudio创建的帧动画
- cocos2d-x 2.2.5 cocostudio
- .NET 无法向会话状态服务器发出会话状态请求
- angularjs惯性滚动指令
- 表驱动法
- Android--分析内存溢出原因
- 音乐播放器-MenuFragment
- Cocos2D-x3.x:cocostudio用户数据使用
- 3D物体在UGUI下的坐标映射
- JavaScript代码性能优化总结 20151101
- 【C++】引用变量(1)
- 新手html/css/javascript入门学习及总结(一月学习记录)
- 20151031 holdon Linux磁盘管理
- 面向测试用例的编程思想和学习方法
- android toolchain maintain team
- js闭包是什么?