【发布时间】:2020-01-01 20:24:29
【问题描述】:
在学习 Sprite Kit 教程时,我注意到使用 UIScreen.main.bounds 来获取它在除 iPhoneX 和 11 之外的大多数 iPhone 尺寸上工作的屏幕范围。我编写了一个快速测试,如下所示,我移动了锚点指向 CGPoint(x: 0, y: 0) 然后从左边缘放置 3 个标签 20、40 和 60 点。除了数字向左移动的 iPhoneX 外,这可以正常工作。我做错了什么?
类 GameScene:SKScene、SKPhysicsContactDelegate {
let screenSize = UIScreen.main.bounds
var testLabel1: SKLabelNode!
var testLabel2: SKLabelNode!
var testLabel3: SKLabelNode!
override func didMove(to view: SKView) {
print (screenSize)
anchorPoint = CGPoint(x: 0, y: 0)
testLabel1 = SKLabelNode(text: "1")
testLabel1.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.left
testLabel1 = initialiseLabel(label: testLabel1, position: CGPoint(x: 20, y: 50))
testLabel2 = SKLabelNode(text: "2")
testLabel2.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.left
testLabel2 = initialiseLabel(label: testLabel2, position: CGPoint(x: 40, y: 50))
testLabel3 = SKLabelNode(text: "3")
testLabel3.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.left
testLabel3 = initialiseLabel(label: testLabel3, position: CGPoint(x: 60, y: 50))
self.addChild(testLabel1)
self.addChild(testLabel2)
self.addChild(testLabel3)
}
func initialiseLabel(label: SKLabelNode, position: CGPoint) -> SKLabelNode{
label.position = position
label.fontSize = 36
label.fontName = "AmericanTypewriter-Bold"
label.fontColor = UIColor.white
return label
}
【问题讨论】:
-
您能否发布一些关于您在较新 iPhone 屏幕上遇到的问题的图片或一些日志输出?
-
你的场景大小和屏幕大小是两个不同的东西。在精灵套件中,您无需担心屏幕大小。您担心要使用什么尺寸,它在各种纵横比上的外观,以及它如何缩放以满足各种设备的尺寸
标签: swift iphone sprite-kit