为什么cocos2d-iphone用户不允许使用@ 2x文件扩展名?

Lea*_*s2D 21 incompatibility cocos2d-iphone retina-display

Cocos2d-iphone为Retina图像(和其他资产)使用-hd扩展名.在cocos2d的视网膜导说,只有依稀"一些不兼容"关于@ 2倍:

Apple使用"@ 2x"后缀,但由于某些不兼容性,cocos2d不使用该扩展名.相反,cocos2d有自己的后缀:" - hd".

警告:不建议使用"@ 2x"后缀.Apple以特殊方式处理这些图像,这可能会导致cocos2d应用程序中出现错误.

大.我感觉很清楚.

通过一个2年前关于@ 2x的错误报告,我得到了一个论坛帖子的链接,据说可以解释@ 2x的问题.但事实并非如此.我在那里找到的唯一提示是有关于@ 2x的iOS(4.0/4.1)错误,我认为这些错误不再相关.我可能错过了一些关键方面(有一些关于缓存或重复加载问题的讨论) - 毕竟线程很长.

我想知道cocos2d开发人员遇到什么具体问题,如果他使用@ 2x后缀代替-hd?

请举例说明可能会或实际上会出错的事情.

Len*_*ert 7

似乎这有一个历史背景.

使用-hd图形仍然值得的是加载它们不依赖于Apple功能,而是在框架代码中完成.因此,可以在iPhone模拟器模式下为iPad加载-hd,并在2x模式下使用更高分辨率的图片.

除此之外,当我在一周前调查时,我找不到更多不使用@ 2x的理由.

如果您想要所有细节,最好放弃riq电子邮件.


Sim*_*iwi 7

这似乎是这个链接的主要原因:http://www.cocos2d-iphone.org/forum/topic/12026

特别是riq的这篇文章:

我不知道initWithContentsOfFile是否已修复,但在4.0中它被破坏了,它无法使用@ 2x,~iphone扩展.imageNamed缓存所有已加载的文件,因此它比initWithContentsOfFile消耗更多的内存.此外,@ 2x扩展还执行某些操作(我不确切知道是什么),但它与cocos2d无法正常工作.

另一个好处是:当iPhone 4刚刚与视网膜显示器一起发布时,我确信Cocos2D的一些用户正在使用它的旧版本,因此当用户在不支持的Cocos2D版本上使用视网膜显示器时事情是他们应该做的事情的两倍.除非你使用的是非常早期版本的Cocos2D,否则现在这个问题已经解决了.

概述,所以似乎主要的问题是来自iOS 4的initWithContentsOfFile,但他们已经解决了这个问题,因为我在我的应用程序中使用了Cocos2D 2.0-rc2的确切API,我没有任何问题.我使用所有Apple指定的扩展图像,一切都很好!:)