2013-03-02 101 views
4

只需尝试测试视网膜显示。我设置导演是这样的:Cocos2d - 不显示视网膜图像

CCDirectorIOS* director = (CCDirectorIOS*)[CCDirector sharedDirector]; 
    director.wantsFullScreenLayout = NO; 
    director.projection = kCCDirectorProjection2D; 
    director.animationInterval = 1.0/60.0; 
    director.displayStats = YES; 
    [director enableRetinaDisplay:YES]; 

我在Photoshop中创建了两个版本的文件 - outline-hd.png和outline.png。我将红色的高清版本着色,以便我可以判断它是否正在显示。

显示代码:

CCSprite *border = [CCSprite spriteWithFile:@"outline.png"]; 
[self addChild:border]; 

然而,这是大干快上我的iPhone5显示的非高清图像。为什么?

+0

您是否将outline-hd.png添加到项目中? – LearnCocos2D 2013-03-02 19:00:33

+0

是的,实际上,如果我指定spriteWithFile:@“outline-hd.png”,它会显示它。这是我的理解,Cocos2d应该自动执行此操作,否则我必须使用if/else语句来确定是否使用视网膜图形。 – soleil 2013-03-02 19:02:17

+0

它自动执行。哪个cocos2d版本btw?您可能需要升级iPhone 5支持(通过Retina iphone模拟器验证)和/或添加[email protected]文件。查看CCFileUtils,了解cocos2d尝试加载图像时发生的情况。 – LearnCocos2D 2013-03-02 19:07:52

回答

0

可能是你忘了:

CCFileUtils *sharedFileUtils = [CCFileUtils sharedFileUtils]; 
[sharedFileUtils setEnableFallbackSuffixes:NO];   
[sharedFileUtils setiPhoneRetinaDisplaySuffix:@"-hd"]; 
+0

试过了。对我没有影响。 – soleil 2013-03-03 06:15:14

1

我碰到这个问题就来了,而试图解决我自己的项目完全相同的问题。必须在cocos2d源文件中进行挖掘才能找出答案。问题是导演的enableRetinaDisplay:YES方法不起作用,除非设置了导演的查看。因此,它需要被设置glView经过长达被调用,你叫setView上导演:

CCGLView *glView = [CCGLView viewWithFrame:aFrame 
            pixelFormat:kEAGLColorFormatRGBA8 
            depthFormat:0 
          preserveBackbuffer:NO 
            sharegroup:nil 
           multiSampling:NO 
           numberOfSamples:0]; 

[[CCDirector sharedDirector] setView:glView]; 
NSLog(@"glView is set, enable retina..."); 
[[CCDirector sharedDirector] enableRetinaDisplay:YES]; 

这应该可以解决这个问题为您服务!