今天冒然下了2.0版本,变动还挺大的,不得不把原有项目做一番不小的改动,改动之处还比较多,这可能跟我原本使用cocos2dx的方法有关,但有一些对于2.0版本改变的不解之处:
1、为什么没有了CCFileData,改成了调用函数返回一个文件内容指针,使用上没之前版本方便不说,还要自己注意delete这个返回的指针,有些降低了易用性;
2、为什么把各种CCXXX::sharedXXX全部集中到了CCDirector::sharedDirector()->getXXX()呢?用起来不太方便呢,效率也没有原先CCXXX::sharedXXX这种方式高;
3、CCNode::setContentSize函数,早期版本是setContentSize(const CCSize &var),现在改成了setContentSize(CCSize var),我原本有个类覆盖了setContentSize以实现自定义的效果,由于函数原型变了,导致覆盖不生效了,不过还好很快找到了问题,改了我的类里覆盖函数的声明和定义就可以了,但不解的是为什么CCNode::setContentSize这个函数要改成不是传递引用值?
4、CCMutableArray类没有了?
5、重要的一个问题:2.0版的CCImageCommon.h类中读取png数据的代码,对png8文件的读取是有BUG的,会产生内存错误,而读取png32格式的png文件则没有问题,原因是申请的内存块比实际需要的内存长度要小。png8文件比png32要小很多,在丢失的色彩不明显的情况下我会普遍选择png8,因此我的项目里面包有很多png8格式的问题,这是我优化应用整体大小的一个重要方面,把所有的png8转成png32固然不会报错,但数量之多以及转换后造成的文件体积增加都使我不情愿这样做,所以只能将读取png的代码还原为1.x版本的代码以确保不会出错;
目前发现的就这个几个费解的问题,其中1、2、3、4仅代表个人观点,第5点应该是BUG。