在我的GameScene.sks
文件中,我将播放器的GameScene作为父级,将SKLabelNode
作为播放器的子级。在GameScene.sks
文件中,我将文本设为0,并在GameScene.swift
文件中包含以下代码
playerHealthLbl = childNode(withName: "playerHealthLbl") as? SKLabelNode
playerHealthLbl?.text = String(200)
这里的问题是每当我构建并运行我的项目时,。SKLableNode.text
仍然等于0而不是200.我确保GameScene.sks
文件中的名称与{相同} {1}}文件。
此外,如果我将GameScene.swift
的父级切换到场景本身,则文本更改为200.任何想法为什么?请指教。
感谢。
答案 0 :(得分:1)
因为标签是玩家不是自己的孩子
childNode(withName: "playerHealthLbl")
与self.childNode(withName: "playerHealthLbl")
和self是场景(在本例中),并且场景没有名为的子节点 “playerHealthLbl”
所以你想做player.childNode(withName: "playerHealthLbl")
或childNode(withName: "//playerHealthLbl")
横穿所有孩子而不管图层