对于CCComRender.cpp的改进建议

CCComRender.cpp中,通过文件扩展名来判断render的类型。例如

filePath.find(".png") != std::string::npos

其中filePath是 cocos2d::CCFileUtils::getInstance()->fullPathForFilename(file) 返回的结果,其路径中可能不包含原先的扩展名信息了。
这里应该用 file 代替 filePath 更好一些。

fullPathForFilename()返回结果不包含原始的扩展名,主要是这种场景:

很多游戏,尤其是联网游戏,都需要可以动态的更新资源。而更新下来的资源,都是存在SD卡上的。
如果其中包含图片,那么手机会把这些图片显示在手机的图库里,用户就可以随意的浏览或者删除,这是开发者不愿意看到的。
所以一个文件,比如a.png,存储在卡上的名字可能已经不是 .png,而是其他的,比如 a.myimage 等。然后就会出现上面的问题。

当然,这个问题也可以有其他方式解决,比如下载的资源可以打包在zip里等。但既然FileUtils提供了getNewFileName()和FilenameLookupDictionary,那么
就应该尽量的遵从这个设计原则。所以希望能得到解决。

PS: 该文件中一共有四处判断扩展名了,分别是 .png, .tmx以及两个.plist.
PS2: 也许studio的其他地方也有类似的问题?我没有仔细检查过。

感谢您的建议,刚对该类进行了查看,这个类是针对CocoStudio读取数据专用的。关于更改后缀部分相当于加密了,目前编辑器未计划加入加密功能,建议您自行实现,并修改该文件。

我已经自己改了。

只是我认为这样子写有违FileUtils的设计思想。