我正在开发类似于以下游戏:https://itunes.apple.com/us/app/impossible-rush-hd/id964396464?mt=8

创建具有不同颜色的球对象数组(Ball:SKNode)。每当球碰到车轮时,我都会使用以下方法将球移开:

ball.removeFromParent()


这很好,但是之后我从阵列中选择另一个随机球来显示并将其添加到场景中不起作用。节点数显示为1,这是Wheel节点。

我最初调用此函数,但它正常工作,但下次从didBeginContact方法调用时将无法正常工作。

func sendBall(){
     var randomIndex = Int(arc4random_uniform(UInt32(self.ballsArray.count)))
     ball = self.ballsArray[randomIndex]
     addChild(ball) //This statement has no effect when its called second time.
}


我被困在这里。有人可以帮帮我吗。

最佳答案

但是下次从didBeginContact调用时不起作用
  方法。


我们无法在didBeginContact内添加子项,
从didSimulatePhysics方法做到这一点

在didBeginContact()和didSimulatePhysics()中设置一个标志,检查标志并调用sendBall()并重置标志:)

10-08 05:50