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很像,可以帮助管理不同的分辨率下的资源,还可以很方便的升级资源。英雄所见略同。

浙公网安备 33010602011771号