cocos2d-x版本变化!

cocos2d-x已经更新到2.1.1了,比起1.0变化了很多。这里整理一些主要变化,帮助开发。


一。最为明显的变化是CCMutableArray没有了,只剩CCArray。
并且你会发现有ccArray和ccCArray这两个结构体。
这两个结构体的作用是
 There are 2 kind of functions:
 - ccArray functions that manipulates objective-c objects (retain and release are performed)
 - ccCArray functions that manipulates values like if they were standard C structures (no retain/release is performed)
 
而CCArray完全取代了之前CCMutableArray的作用,并且遍历使用CCARRAY_FOREACH。
同时CCDictionary取代了CCMutableDictionary,并且遍历使用CCDICT_FOREACH,得到的遍历对象是CCDictElement,这和map的遍历得到iterator有点像,CCDictElement可以getkey或者getObject。CCDictionary的Key被限制为int或者string,而存储对象也被限制为CCObject。
个人感觉这样有点不high啊,取出东西需要先强制转换类型,并且key做了限制。
 
二。文件路径的搜索方式变了。
查看CCFileUtils.h文件
2.1最大的变化是查找文件路径的方式,
参考fullPathForFilename函数,查找一个文件“gamescene/uilayer/sprite.png”时,将顺序查找
Ai/gamescene/uilayer/Bj/sprite.png这样形式的一个路径,直到找到文件为止,其中Ai是基本路径,可以是包路径,或者文档路径,“mnt/sdcard”等等,而Bj也是一个可变路径,通常是分辨率。
这样可以很方便的适配不同的分辨率。
2.2辅助查找文件用的配置
loadFilenameLookupDictionaryFromFile函数,可以打开一个plist配置文件,其中包含一个映射表,将文件名A映射为A++,在调用getNewFilename函数时,输入A,将返回A++,可以说是当文件升级后,可以方便找到新的文件,也可以帮助一个很长的文件路径来配置一个shortname。
 
以上两点和之前我在1.0版本基础上所写的resourceManager很像,可以帮助管理不同的分辨率下的资源,还可以很方便的升级资源。英雄所见略同。
 
posted @ 2013-05-28 17:04  六界剑仙  阅读(262)  评论(0)    收藏  举报