我想整理一些我的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