我想整理一些我的SKScene代码。目前我有约11个参考SKNodes(一些是包含子节点的图层)。这些节点及其子节点经常被该类访问。我认为这样做的方式是:整洁,清洁访问SKNodes
将所有SKNode的子类别转换为另一个类别,例如,当前我在SKOIOS上定义了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子类中丢失了一些简单的东西,如上所述。
非常感谢,
事实上,我认为懒惰的初始化可能会允许这些属性,但可悲的是它没有。相反,我在该类中添加了一个图层变量,删除了该子类,并通过初始化程序将该节点传递给该类。它不觉得非常优雅,但它是以前的改进 – Mason