的存储方式 Json篇 以Cocos2D For I.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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中,作者不推荐将根

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档