更轻松地扩展各种iPhone尺寸的资产?

时间:2014-12-03 06:26:40

标签: ios iphone sprite-kit

创建应用时,除了根据检测到的设备创建和加载不同的资源外,还有更简单的方法来扩展图像吗?只需要经历为iPhone 6 +,6,5,4创建不同图像的痛苦,并根据设备调整屏幕上的各种定位,这似乎有点荒谬。

此外,我正在使用Spritekit粒子效果,并且必须为不同的设备重新创建这些效果。

我知道你可以拥有Xcode高档的iPhone 5资产,但显然权衡的是图像清晰度。如果你可以为最大的iPhone设计一切,并让它自动缩小为其他设备,那将是很好的。没有这样的方式,有吗?

2 个答案:

答案 0 :(得分: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遵循相同的宽高比,所以你不需要担心但4s压扁的小SKScene(没有三个纹理图集就无法修复)

答案 1 :(得分:0)

所有关于不同型号的宽高比都是如此。 幸运的是,只有两个iOS设备4:3或16:9。这对Android设备来说要困难得多,因为有更多不同的宽高比。

点击此处查看相关信息: iOS Device Resolution

您可以为每个宽高比拍摄最高分辨率的图像,并使用texturepacker进行缩放。 这将花费一些钱,但它是值得的。(不隶属于公司)。

或者查看免费的android内容!:

Android Asset Studio