博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CocoStudio 1.4.0.1数据编辑器使用
阅读量:5846 次
发布时间:2019-06-18

本文共 1830 字,大约阅读时间需要 6 分钟。

    到目前为止,CocoStudio 1.4.0.1(不知最新的1.5.0.1是否实现?)数据编辑器仅提供最基本数据支持--导入EXCEL数据清单和CSV文件。通过下面提供的截图你可以看出这个数据编辑器还没有提供JSON格式文件和SQLite数据的导入。但是,就其目前提供的两种格式数据的导入已经比较不错了。有关CSV文件格式,请你自行参考网络资源,非常简单,这是一种非常简单的文本文件格式。

    其实,就我的使用情况来看,我使用SQLite时紧密结合FireFox插件Sqlite Manager使用(或者使用SQLite Developer v4.0这个桌面商业软件)。其中,我使用EXCEL创建游戏数据,然后另存为(导出)CSV格式文件,然后再通过一个流行的文本编辑软件把这个CSV格式文件转换成unicode编码。最后,在FireFox插件Sqlite Manager中导入到SQlite表格中。

一、在数据编辑器中导入Excel文件

当然,EXCEL工作簿中工作表中存放的应当是数据清单格式。

spacer.gif


二、导出Json文件


三、使用文本编辑器查看Json数据

特别建议开发者安装NotePad++或者EditPlus其中之一,用于随意地打开查看或者编辑你感兴趣的各种文本文件。

spacer.gif


四、在程序中添加Json解析函数

void getJsonFromFile(const char* fileName, rapidjson::Document &jsonDict)

{

    unsigned char *pBytes = NULL; 

    std::string jsonpath; 

    jsonpath = CCFileUtils::sharedFileUtils()->fullPathForFilename(fileName); 

    unsigned long size = 0; 

    pBytes = CCFileUtils::sharedFileUtils()->getFileData(jsonpath.c_str(), "r" , &size); 

    CCData *data = new CCData(pBytes, size); 

    std::string load_str = std::string((const char *)data->getBytes(), data->getSize() ); 

    CC_SAFE_DELETE(data); 

    jsonDict.Parse<0>(load_str.c_str()); 

}


获取Json文件中的数据

rapidjson::Document rapidJsonData; 

getJsonFromFile("data.json", rapidJsonData); 

for(int i = 0; i < 4; i++)

{

    const char* name = DictionaryHelper::shareHelper()->getStringValue_json(rapidJsonData[i], "name");

    int level = DictionaryHelper::shareHelper()->getIntValue_json(rapidJsonData[i], "level");

    int hp = DictionaryHelper::shareHelper()->getIntValue_json(rapidJsonData[i], "hp");

    int attack = DictionaryHelper::shareHelper()->getIntValue_json(rapidJsonData[i], "attack");

    CCLog("%s, %d, %d, %d", name, level, hp, attack);

}


程序运行后输出如下类似结果:

五、小结

从我遇到的目前一些基于cocos2d-x框架开发的游戏来看,许多软件都使用json格式存储数据。因此,实际开发中很可能根据情况需要你对json数据格式文件进行加密与解密操作。

六、补充1

使用数据编辑器导出的json文件当然可能轻松地在COCOSTUDIO的另一个组件--场景编辑器中借助于CCComAttribute组件的[文件]属性加以引用。其实,这是一种静态的引用数据的方式,而更灵活的方式,即动态引用,就是上面文件中所给出的方法。

转载地址:http://rkwjx.baihongyu.com/

你可能感兴趣的文章
html5 <figure> 标签
查看>>
linux的I/O多路转接select的fd_set数据结构和相应FD_宏的实现分析
查看>>
Mysql数据库InnoDB存储引擎的隔离级别
查看>>
开源监控软件 Hyperic 的两种插件
查看>>
TOMCAT
查看>>
删除一个或数个文件
查看>>
无土栽培中的物联网技术应用
查看>>
html入门的一些东西
查看>>
spring异常:Could not resolve placeholder
查看>>
div contenteditable="true"各个浏览器上的解析
查看>>
Spark学习记录(二)Spark集群搭建
查看>>
Java邮件发送:带附件 or 不带附件 is nothing
查看>>
Python骚操作:动态定义函数
查看>>
Python基本数据类型之字典
查看>>
php引用(&)详解及注意事项
查看>>
OSChina 周一乱弹 —— 只要给网,这种生活我能过一辈子
查看>>
短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案...
查看>>
CloudStack 4.4学习总结之cloudstack-management安装
查看>>
【动弹有奖】——OSC登录并发送动弹分析(附python源码)
查看>>
protocol buffer安装及使用(非常详细)
查看>>