2014-12-03 43 views
0

創建應用程序時,除了根據檢測到的設備創建和加載不同的資產之外,是否還有其他更簡單的方法來縮放圖像?看起來有點荒謬,不得不經歷爲iPhone 6+,6,5,4創建不同圖像的痛苦,並且還要根據設備調整屏幕上的各種位置。更簡單的方式來擴展各種iPhone尺寸的資產?

此外,我正在使用Spritekit粒子效果,並且還必須爲不同設備重新創建這些效果。

我知道你可以擁有Xcode高檔的iPhone 5資產,但顯然這種折衷是圖像清晰度。如果您可以爲最大的iPhone設計一切,並且可以自動縮小其他設備,那將會很不錯。沒有這樣的方式,是嗎?

+0

不是真的。考慮到全分辨率紋理會消耗大量內存,但設備越舊,可用內存就越少。因此,儘管您可以在較舊的設備上縮小最高分辨率的圖像,但由於內存使用率過高,或者由於無法處理大的紋理,舊版設備甚至無法運行該應用程序。 – LearnCocos2D 2014-12-03 09:50:46

回答

0

定義ViewController.m微文件

#define IS_WIDESCREEN (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 

調用以下方法

現在看到下面這個方法做工精細,每iPad設備的代碼,如果你有1024 * 768,但很少長寬比對於iPhone5,5s和6,6 +而言,這種方法會被壓扁,但這種方法是爲所有設備創建遊戲的最快方式,因爲它會根據屏幕比率壓扁SKScene。

-(void)addAspect 
{ 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { 

     if (IS_WIDESCREEN) { 

      _globalscaleX=(1024.0f*2)/(568*2); 
      _globalscaleY=(768.0f*2)/(320*2); 

      LoaderScreen = [loadingScene sceneWithSize:CGSizeMake(_yourSKView.bounds.size.width*_globalscaleX, _yourSKView.bounds.size.height*_globalscaleY)]; 
       //LoaderScreen.scaleMode = SKSceneScaleModeAspectFit; 
      LoaderScreen.scaleMode = SKSceneScaleModeFill; 


     } else { 


      if([[UIScreen mainScreen] bounds].size.height==480) 
      { 

       _globalscaleX=(1024.0f*2)/(480*2); 
       _globalscaleY=(768.0f*2)/(320*2); 
      } 
      else 
      { 
       _globalscaleX=(1024.0f*2)/(568*2); 
       _globalscaleY=(768.0f*2)/(320*2); 
      } 


      LoaderScreen = [loadingScene sceneWithSize:CGSizeMake(_yourSKView.bounds.size.width*_globalscaleX, __yourSKView.bounds.size.height*_globalscaleY)]; 
       LoaderScreen.scaleMode = SKSceneScaleModeFill; 
     } 

    } else { 

     _deviceType=ipad; 
     _globalscaleX=1.0f; 
     _globalscaleY=1.0f; 

     LoaderScreen = [loadingScene sceneWithSize:CGSizeMake(_yourSKView.bounds.size.width, _yourSKView.bounds.size.height)]; 
     LoaderScreen.scaleMode = SKSceneScaleModeAspectFill; 
    } 

    // Present the scene. 
    [_yourSKView presentScene:LoaderScreen]; 


} 

2)現在第二溶液和最佳的解決方案(質量明智)是去兩個紋理圖譜,其中第一紋理地圖遵循ipad公司系列比率和第二5和6系列因爲圖5和6遵循相同的縱橫比,以便你不不需要擔心,但4秒鐘就會被壓扁的小SKScene(不能固定沒有三個紋理圖譜)

0

這是所有關於不同模型的長寬比。 幸運的是,只有兩個iOS設備4:3或16:9。這對於Android設備來說會更難,因爲有更多不同的寬高比。

在這裏獲得的信息上: iOS Device Resolution

你可以採取的最高清晰度的圖像每個縱橫比和使用texturepacker做縮放。 這將花費一些錢,但它是值得的(不附屬於公司)。

或檢出的免費的Android的東西!:

Android Asset Studio