ios – SpriteKit的坐标系在Xcode 8中有变化吗?

在以前版本的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:

解决方法

不,SpriteKit仍然使用相同的坐标系.

不同之处在于,随新项目提供的示例.sks场景文件已更改.在早期版本的Xcode中,该.sks文件的锚点(即场景的“原点”所在的位置)位于(0,0),这使得原点位于左下角.

在Xcode 8中,.sks文件认锚点为(0.5,0.5),这是场景的中心.

要恢复旧的行为,只需进入该.sks文件并将锚点重置为(0,0).您所处的任何遗留.sks文件仍然有效,因为它们的锚点之前设置为(0,0).

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...