cocos2d iphone-4 更新图片资源文件问题
Posted
技术标签:
【中文标题】cocos2d iphone-4 更新图片资源文件问题【英文标题】:cocos2d iphone-4 Updating Image Resource Files problem 【发布时间】:2010-08-09 09:03:16 【问题描述】:这是我的代码...
CCSprite *u = [CCSprite spriteWithFile:@"1_S.png" rect:CGRectMake(0, 0, 27, 27)];
u.position = ccp((45.7*i+45.7*(i+1))/2, 467);
u.tag = i;
[self addChild:u];
在我的资源文件夹中,我有 2 个名为
的图像文件1_S.png
和
1_S@2x.png
。当我阅读文档时
https://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/SupportingResolutionIndependence/SupportingResolutionIndependence.html#//apple_ref/doc/uid/TP40007072-CH10
我认为当我在 iPhone 4 中运行此代码时,图像名为
1_S@2x.png
应该加载......但它不是......第一个图像已加载......为什么?这是版本问题吗???
【问题讨论】:
【参考方案1】:OS4 代码中存在一个错误,导致 Retina 显示器无法与 cocos2d 一起使用
有关问题 910,请参阅此链接:
http://www.cocos2d-iphone.org/wiki/doku.php/release_notes:0_99_4#
Issue #910 is still open.
The workaround is to edit CCTextureCache.m and make the following changes:
//# work around for issue #910
#if 0 // <---- change it to #if 1
UIImage *image = [UIImage imageNamed:path];
tex = [ [CCTexture2D alloc] initWithImage: image ];
#else
// prevents overloading the autorelease pool
UIImage *image = [ [UIImage alloc] initWithContentsOfFile: fullpath ];
tex = [ [CCTexture2D alloc] initWithImage: image ];
[image release];
#endif //
Again, issue #910 is not a cocos2d bug, but an ios4 bug. ”@2x” images are not loaded if you use UIImage initWithContentOffile (but the documentation says it should work). So the work around is to use UIImage imageNamed, but it is not enabled by default because it will consume much more memory.
【讨论】:
嗨,谢谢.....但我不知道该怎么做......它告诉编辑 CCTextureCache.m 但在哪里......??你能告诉更多细节吗?? 在你的项目文件夹的finder中,去libs,cocos2d,它就会在那里。或者在 xcode 中,打开你的类附近的 cocos2d 文件夹并在那里寻找它。 我不是指文件在哪里......我实际上是指代码必须在文件中添加的位置......我找到了文件...... 第 196 行,在附近,在 addImage: 方法中 好的...我认为更新版本已经这样做了....认为更好的想法是使用 iPhone 4 的更新版本的 cocos ..以上是关于cocos2d iphone-4 更新图片资源文件问题的主要内容,如果未能解决你的问题,请参考以下文章
最新版本号cocos2d­2.0­x­2.0.2使用新资源载入策略!不再沿用-hd-