2013-03-02 100 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]; 

這應該可以解決這個問題爲您服務!