当我尝试在 Swift 中对我的操作进行排序时,为什么会不断出现此错误?

Why do I keep getting this error when I try to sequence my actions in Swift?

这是我得到的错误。我有一个我正在使用的序列,因此我可以按顺序调用操作。我将函数 addGameBall() 放在一个 runBlock 中,这样我就可以让那个动作最后完成。这是正确的方法吗?这是我的代码:我做错了什么?谢谢!

Attemped to add a SKNode which already has a parent

    //RightSide
    if firstBody.categoryBitMask == GameBallCategory && fourthBody.categoryBitMask == WallCategpory {
        println("GoalRight")

        let waitBall = SKAction.waitForDuration(1.0)
        let removeFromParent = SKAction.removeFromParent()
        let respawnBall = SKAction.runBlock(self.addGameBall)
        let sequenceThis = SKAction.sequence([waitBall, removeFromParent, respawnBall])

        runAction(sequenceThis)

    }

"Attempting to add a sknode which already has a parent" 表示您要添加一个节点两次。我看不到您的 addGameBall 代码,但我相信您在他们的代码中有一行。 self.addChild(ball)//or whatever your code is called。每次运行此函数时,都会执行该行,因此多次添加对球节点的相同引用,这就是编译器抱怨的原因。这个问题可以通过将 ball 声明为局部变量来解决,这样当函数运行时,就会创建对该节点的新引用。编码愉快。