如何为不同的屏幕调整背景大小?

时间:2015-03-25 02:32:45

标签: swift sprite-kit

所以我只想制作一个适合不同屏幕的背景。这就是我到目前为止所做的:

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
}

1 个答案:

答案 0 :(得分:1)

我在目标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等。

希望它有所帮助,

祝你好运。