当我尝试在 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 声明为局部变量来解决,这样当函数运行时,就会创建对该节点的新引用。编码愉快。
这是我得到的错误。我有一个我正在使用的序列,因此我可以按顺序调用操作。我将函数 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 声明为局部变量来解决,这样当函数运行时,就会创建对该节点的新引用。编码愉快。