这是我得到的错误。我有一个我正在使用的序列,所以我可以按顺序调用这些动作。我将函数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)
}
答案 0 :(得分:1)
“尝试添加已有父级的sknode”意味着您要添加两次节点。我看不到你的addGameBall代码,但我非常有信心你在他们的行中说道。 self.addChild(ball)//or whatever your code is called
。每次运行此函数时,都会执行该行,因此会多次添加对ball节点的相同引用,这就是编译器抱怨的原因。这个问题可以通过将ball声明为局部变量来解决,这样当函数运行时,就会创建一个对节点的新引用。快乐的编码。