- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
的存储方式 Json篇 以Cocos2D For I
的存储方式 Json篇 以Cocos2D For I
数据/配置的存储方式Json篇以Cocos2D For Iphone+TouchJson为例2010-07-24 15:12前言
配置的好处,JSon介绍,及为什么要使用Json都参看原来JsonCpp篇的内容。本文仅针对TouchJson稍微进行一些讲解。
Cocos2D For IPhone+TouchJson Cocos2D For IPhone是我见过的开源2D引擎中特性最完备的一个,即使速度上不算最快的。因为其只支持IPhone平台,所以能够在这个平台上做的很出众,现在新版的Cocos2D For IPhone已经支持iOS4和IPhone4,其工程模板的安装使用也是非常方便。新版甚至将原来的LGPL协议改为现在的MIT协议了,使用更加灵活自由。
TouchJson的使用属于不想在一个比较完全的Objective C环境中添加C++代码,(事实上使用Box2D的话还是避免不了)所以不使用JsonCpp来配合Cocos2D,何况Cocos2D的模板工程中本来就带有TouchJson了,将其删掉再插进JsonCpp也太不人道了。呵呵。另外,因为TouchJson用Objective C完成,解析后也是个NSDictionary的对象所以与Objecitve C的对象组合使用会更加自然一些,使用苹果并为苹果开发,我是几乎已经习惯一整套都是用apple平台专有的东西了,唉。对比当年简单的因为C#完全掌握在MS手中而不想学习,这也算是一种悲哀,因为Objective C比C#更加封闭,而且,起码C#还是这个世界上语法最漂亮,最先进语言的代表。
首先,利用Cocos2D的模板,创建一个新的工程,此时默认的效果是显示一个Hello World。如下:
这里,我们就不用其他图了,看看怎么配置这个Hello World。
最最基础的流程:
建立一个Json文件,仅仅有两行配置,一行表示显示的文字,一行表示文字的旋转
{
text:Dont Hello World,
rotation:20
}
然后将此Json文件放入工程的Resources目录,我这里命名为picture.json。
然后可以开始着手解析这个Json文件了。
整个解析过程又分几步,首先,#importCJSONDeserializer.h
然后,获取到编译打包后在Resources目录文件的位置:
NSString*path=[[NSBundle mainBundle]pathForResource:@pictureofType:@json];
获取文件路径后,从文件中读取数据:
NSData*jsonData=[[NSFileManager defaultManager]contentsAtPath:path];
获取文件数据后,解析Json文件:
//Parse JSON results with TouchJSON.It converts it into adictionary.
CJSONDeserializer*jsonDeserializer=[CJSONDeserializer deserializer];
NSError*error=nil;
NSDictionary*jsonDict=[jsonDeserializer deserializeAsDictionary:jsonData error:error];
if(error){
//handle Error,didnt have here.
}
此时jsonDict保存的就是解析后的Json数据了。
(以上代码都添加在HelloWorldScene的init中)
下面来看使用:
首先,text改变HelloWorld显示的文字:
NSString*text=[jsonDict valueForKey:@text];
//create and initialize aLabel CCLabel*label=[CCLabel labelWithString:text fontName:@Marker FeltfontSize:64];
这里就已经是cocoa中NSDictionary怎么使用的问题了。
然后,rotation改变旋转:
NSNumber*rotation=[jsonDict valueForKey:@rotation];
NSAssert(rotation,@Didnt have akey named rotation);
label.rotation=[rotation floatValue];
一切就绪,看效果:
上面的流程已经基本完整了,作为补充,还是添加一个Json数组使用的例子。
在TouchJson中,作者不推荐将根
您可能关注的文档
最近下载
- 杨瑞龙-国有企业分类改革与公司治理结构创新研究报告.ppt VIP
- KernelMethod核回归核方法.ppt VIP
- (正式版)D-L∕T 607-2017 汽轮发电机漏水、漏氢的检验.docx VIP
- 2.5.2 解直角三角形的应用-方位角学历案.docx VIP
- JTGT3660—2020-公路隧道施工技术规范.docx VIP
- 教科EEC版小学英语五年级上册全册教案.pdf VIP
- 关于卫生院“十五五”发展规划方案(详细版).pdf VIP
- T∕CTES 1017-2019 纺织品 织物触感检测与评价方法 三点梁法.pdf VIP
- 健康生活方式指导员培训考核习题.docx VIP
- 施工现场临时用电的安全教育与培训.pptx VIP
原创力文档


文档评论(0)