cocos2d iphone-4更新图像资源文件问题

时间:2010-08-09 09:03:17

标签: iphone cocos2d-iphone

这是我的代码......

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 个答案:

答案 0 :(得分:1)

OS4代码中存在一个错误,阻止视网膜显示使用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.