我们使用以下代码在屏幕上移动精灵:
let newPoint = CGPoint(x: target.position.x, y: target.position.y)
let moveAction = SKAction.moveTo(newPoint, duration: 2.0)
let removeAction = SKAction.removeFromParent()
dart.runAction(SKAction.sequence([
moveAction,
removeAction
]))
但是,在removeAction
执行之前的某个时刻,另一个代码块可能会执行(碰撞时)并在同一个精灵上调用removeFromParent
。到目前为止,代码执行正常。第二个removeFromParent
似乎是一个无操作,并没有像我们预期的那样产生异常。
从已删除的节点调用removeFromParent
是否有缺点,或者我们可以保留代码吗?