在SpriteKit的早期版本中,原点(0,0)始终位于左下角。此外,默认情况下,Node已添加到其父级,从那里开始。
似乎从Xcode 8开始,新的默认原点位于屏幕的中心。
这是正确的行为,测试版中的错误,还是我根本不理解SpriteKit?
两个
使用相同的代码import SpriteKit
import GameplayKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
let ship = SKSpriteNode(imageNamed: "Spaceship")
addChild(ship)
}
}
Xcode 7:
Xcode 8:
答案 0 :(得分:6)
不,SpriteKit仍然使用相同的坐标系。
不同之处在于,随新项目提供的示例.sks场景文件已更改。在早期版本的Xcode中,该.sks文件在(0,0)处有一个锚点(即场景的起源和#34;),这使得原点位于左下角角。
在Xcode 8中,.sks文件的默认锚点为(0.5,0.5),这是场景的中心。
要恢复旧的行为,只需进入该.sks文件并将锚点重置为(0,0)。您所处的任何遗留.sks文件仍然有效,因为它们的锚点之前设置为(0,0)。