swift - 整洁、干净地访问 SKNode

标签 swift sprite-kit sknode

我正在尝试整理我的一些 SKScene 代码。目前我有大约 11 个对 SKNode 的引用(有些是包含子节点的层)。这些节点及其子节点被类频繁访问。我考虑这样做的方式是:

将所有 SKNode 子类化到另一个类,例如,目前我在 SKScene 的顶部定义了 layerPause: SKNode?。这将变为 layerPause: PauseMenu 其中:

class PauseMenu: SKNode
{
lazy var lbBestTime: SKLabelNode = childNodeWithName("lbPersonalBest") as! SKLabelNode
}

然后,当场景正在加载时,我可以简单地使用:

layerPause = pauseScene.childNodeWithName("pauseMenu")?.copy() as? SKNode

这将使我能够轻松访问重要的子节点,而无需一直调用 childNodeWithName。但不幸的是,PauseMenu 类给出了一个错误,提示我无法使用 childNodeWithName 方法。

有人能指出我正确的方向吗?也许有一种更优雅的方式来管理我的节点,或者我可能在 PauseMenu 子类中遗漏了一些简单的东西,如上所述。

非常感谢,

最佳答案

如此接近,你只需要添加一个明确的self:

class PauseMenu: SKNode
{
    lazy var lbBestTime: SKLabelNode = 
        self.childNodeWithName("lbPersonalBest") as! SKLabelNode
}

关于swift - 整洁、干净地访问 SKNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31524494/

相关文章:

swift - 如何让 Sprite 坐在移动的 Sprite 上

objective-c - Swift 中的外部变量

swift - 在自己的类中显示 UIActivityViewController

swift - 通过向左滑动操作点击时多个 ViewController

swift - 在 for 循环中更改 SKNode 子节点的属性

swift - 更改作为 SKSpriteNode 的 SKNode 的纹理

swift - "Use of unresolved identifier"对隐式 setter 上的选择器使用新的 Swift 2.2 语法

swift - 连续触摸/移动 Swift & SpriteKit

ios - 高分记忆不工作 Xcode