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

时间:2015-07-24 02:25:25

标签: ios swift skaction

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

  

尝试添加已有父级的SKNode

    //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)

    }

1 个答案:

答案 0 :(得分:1)

“尝试添加已有父级的sknode”意味着您要添加两次节点。我看不到你的addGameBall代码,但我非常有信心你在他们的行中说道。 self.addChild(ball)//or whatever your code is called。每次运行此函数时,都会执行该行,因此会多次添加对ball节点的相同引用,这就是编译器抱怨的原因。这个问题可以通过将ball声明为局部变量来解决,这样当函数运行时,就会创建一个对节点的新引用。快乐的编码。