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