所以我只想制作一个适合不同屏幕的背景。这就是我到目前为止所做的:
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
}
答案 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等。
希望它有所帮助,
祝你好运。