定义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