在 Storyboard 中使用不可见的 UIView 设置 SKSpriteNode 位置

Setting SKSpriteNode position by using invisible UIView in Storyboard

我最近才开始使用 iOS Spritekit。大多数教程和 Whosebug 主题都提到我不能使用 Storyboard 来安排 SKSpriteNode,所以我一直在努力布局我的视图,尤其是我还有一些其他组件,如 UILabels。

我通过放置不可见的 UIView(并使用其他组件对它们进行自动布局)来解决这个问题,并将值传递到 SKScene 中,SKScene 将根据值放置 SpriteNode——在转换坐标系等之后

这种方法会有潜在的问题吗?它适用于简单的情况,但它显然是一个 hack...:P
或者是否有更好的布局 SpriteNode 的方法?我正在浏览 RayWenderlich 教程,但到目前为止,其中很多似乎都是硬编码的位置?

好吧,这肯定比需要完成的工作要多,因此可能会出现性能问题。另一种方法(也是正确的方法)是使用 Xcode.

中的场景编辑器

创建一个新的 SpriteKit 场景文件并将您的节点添加到其中。为 class SKScene 创建一个新的 Swift 文件,并为场景文件设置自定义 class。

然后您需要做的就是将这些节点放入您的 class(如 IBOutlet)中...

override func didMove(to: view){
    let shipNode = self.childNode(withName: "shipNodeName") as! SKSpriteNode

}