如何使背景可调整大小以适应不同的屏幕?

How to make a background resizable for different screens?

所以我只是想制作一个适合不同屏幕的背景。这是我目前所拥有的:

class GameScene: SKScene,   {

let scaleFactor: CGFloat = 0.0

override init(size: CGSize) {
    super.init(size: size)
    scaleFactor = self.size.width / 320.0
}

func createBackgroundNode() -> SKNode {

    let backgroundNode = SKNode()
    let background = SKSpriteNode(imageNamed: "Background")
    background.setScale(scaleFactor)
    background.position = CGPoint(x: self.frame.width / 2  , y: self.frame.height / 2 )
    background.zPosition = 0
    addChild(background)

    return backgroundNode
}

我正在 objective c 编写代码,但我认为我的回答对您有用。您只需调整代码以适应 swift。我在实施后添加了以下方法:

- (void)ScreenSize
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {

        CGSize result = [[UIScreen mainScreen] bounds].size;
        if (result.height == 480) {
            //Do something
        } else if (result.height == 568) {
            //Do something
        } else if (result.height == 667) {
            //Do something
        } else if (result.height == 736) {
            //Do something
        }
    } else {
        //Do something for iPad here
    }
}

这里我用的是void,大家可以根据需要使用,比如SKSpriteNode等等

希望对您有所帮助,

祝你好运。