一旦玩家失去了5条生命,我试图摆脱重启按钮,这是我创造的GAMEOVER。这段代码不适合我,任何人都可以帮我理解原因吗?
func loseALife(){
if lives == 0 {
enumerateChildNodes(withName: "Restart", using: ({
(node, error) in
self.removeAllActions()
})
runGameOver()
}
}
这是重启按钮的功能
func createButton() {
restartButton = SKSpriteNode(imageNamed: "restart")
restartButton.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 2)
restartButton.zPosition = 6
restartButton.setScale(0.5)
restartButton.name = "Restart"
self.addChild(restartButton)
答案 0 :(得分:1)
而不是self.removeAllActions()
使用
node.removeFromParent()
您正在使用self
,在这种情况下,它指的是GameScene和removeAllActions
,它仅适用于当前正在运行操作的游戏元素。变量node
来自enumerateChildNodes
的每次迭代,并且是对按钮的直接引用。