SpriteKit(Swift 2.1)以编程方式自动布局?

时间:2015-11-29 21:58:24

标签: swift sprite-kit

虽然SpriteKit让开发2D游戏变得非常简单,但让我烦恼的一件事就是我必须对游戏进行编码以使其在不同大小的iOS设备上调整大小。

例如:

`if size.height == 568 {
//iPhone 5/5S screen dimensions
spriteNode!.size = CGSize(height: 30, width: 45)
spriteNode!.position = CGPoint(x: 100, y: 50)
} else if size.height == 1024 {
//iPad screen dimensions
spriteNode!.size = CGSize(height: 60, width: 90) /* Twice the normal size */
spriteNode!.position = CGPoint(x: 200, y: 80) /* Moved over and above a bit */
}
`

如示例中所示,如果屏幕的高度为768(如iPhone 5,即768x320),则运行的代码行数与屏幕高度为1024(iPad)时不同

然而,这甚至在一个简单的游戏中都会永远存在,并且对于更复杂的2D平台游戏(例如超级马里奥兄弟)来说是非常不可行的。有更快的方法可以调整大小并为不同大小的iDevices重新定位SpriteKit节点(在Swift 2.1)?

1 个答案:

答案 0 :(得分:1)

您可以根据屏幕的高度和宽度设置精灵的位置和大小。例如:

spriteNode!.size = CGSize(height: size.height * 0.1, width: size.height * 0.1)
spriteNode!.position = CGPoint(x: size.height * 0.5, width: size.width * 0.5)

会在屏幕中间创建一个精灵十分之一的精灵。无论设备如何,精灵都会伸展到适合的状态,无论设备如何,它都会被放在屏幕中间。