cocos2d-x lua 3.6 解析json
来源:互联网 发布:cf网络异常又非法模块 编辑:程序博客网 时间:2024/05/29 19:12
cocos2d-x lua 解析json
在游戏开发过程中经常使用json文件作为存储本地数据的文件,这里介绍下cocos2d-x lua 3.6中如何使用json文件。
思路:
- 将json文件当作文本导入到程序中
- 通过引擎提供的json库解析json数据文件为table
代码
local str = cc.FileUtils:getInstance():getStringFromFile(config_file_name) local data = json.decode(str) self.data_ = data for k,val in ipairs(data) do table.foreach(val,function(i, v) print (i, v) end) end
读取的json文件
[ {"id":1,"name":"dici","json":"dici.ExportJson","plist":"dici0.plist","png":"dici0.png"}, {"id":2,"name":"ForeAnimation","json":"ForeAnimation.ExportJson","plist":"ForeAnimation0.plist","png":"ForeAnimation0.png"}]
附加一段自动读取cocos的骨骼动画文件为json数据文件的python脚本.这个脚本的功能是自动查找当前文件夹,以及其子目录中的骨骼动画文件,并按照指定的格式在当前目录导出json文件。
#coding=utf-8import os,sys,reimport jsonfile_path = []def getNameList(dir,wildcard,recursion): exts = wildcard.split(" ") files = os.listdir(dir) for name in files: fullname = os.path.join(dir,name) if os.path.isdir(fullname) & recursion: getNameList(fullname,wildcard,recursion) else: for ext in exts: if(name.endswith(ext)): file_path.append(fullname) #print(fullname) breakclass AnimationData: id = -1 name = "" image_name = "" plist_name = "" json_name = "" def __init__(self,id,name,image_name,plist_name,json_name): self.id = id self.image_name = image_name self.plist_name = plist_name self.json_name = json_name self.name = name def getDictionary(self): ret = {} ret["id"] = self.id ret["name"] = self.name ret["image"] = self.image_name ret["plist"] = self.plist_name ret["json"] = self.json_name return retdef run(): getNameList(sys.path[0],".ExportJson",1) file_name_list = file_path resList = [] id = 1 for file_name in file_name_list: a = file_name.find(".ExportJson") if a<>-1: json_name = file_name.split("\\")[-1] #print json_name name = json_name.split(".")[0] #print name image_name = ("%s0.png")%(name) plist_name = ("%s0.plist")%(name) res = AnimationData(id,name,image_name,plist_name,json_name) resList.append(res) id += 1 print id l_out = [] for ani in resList: l_out.append(ani.getDictionary()) print l_out encode_json = json.dumps(l_out) print encode_json abs_path = os.path.abspath(sys.argv[0]) abs_path_list = abs_path.split("\\") length = len(abs_path_list) out_path = "" for index,value in enumerate(abs_path_list): if index >= length - 1: break if index == 0: out_path = ("%s\\"%(value)) else: out_path = ("%s%s\\"%(out_path,value)) out_path = ("%s%s"%(out_path,"AnimationConfig.json")) print out_path f = open(out_path,"w") f.write(encode_json) f.close()if __name__ == "__main__": run()
0 0
- cocos2d-x lua 3.6 解析json
- cocos2d-x lua json解析
- quick cocos2d-x lua解析json文件
- Cocos2d-x教程(22)-lua中的json解析
- cocos2d-x Json解析
- [寒江孤叶丶的Cocos2d-x之旅_16]Cocos2d-x LUA脚本中解析Json的方法
- cocos2d-x hello.lua解析
- quick-cocos2d-x解析json
- cocos2d-x json解析 jsonBox
- cocos2d-x json解析 jsonBox
- cocos2d-x json解析 jsonBox
- cocos2d-x RapidJson解析json
- 【cocos2d-x 3.5】Lua Json使用
- 【Cocos2d-x lua篇003】简单解析Lua的堆栈
- Cocos2d/x 解析服务器JSON数据
- cocos2d-x 使用libjson解析json
- Cocos2d-X Json格式文件的解析
- cocos2d-x 3.2 Json文件解析
- android 常用的存储路径
- 1047. Student List for Course (25)
- Linux下php安装Redis扩展
- 注解
- Exynos4412裸机开发 —— RTC 实时时钟单元
- cocos2d-x lua 3.6 解析json
- android handler的内存泄露问题
- Podfile
- Spring中@Autowired注解、@Resource注解的区别
- Linux初讲——cd命令
- 使用EXCEL表格制作甘特图Gantt
- 任务与线程
- win7 64位 Python 安装matplotlib 过程记录
- CodeForces 623 A. Graph and String(水~)