游戏结束后尝试删除重启按钮

时间:2016-12-07 01:28:19

标签: swift sprite-kit enumerate

一旦玩家失去了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)

1 个答案:

答案 0 :(得分:1)

而不是self.removeAllActions()使用

node.removeFromParent()

您正在使用self,在这种情况下,它指的是GameScene和removeAllActions,它仅适用于当前正在运行操作的游戏元素。变量node来自enumerateChildNodes的每次迭代,并且是对按钮的直接引用。