我下面一個SpriteKit教程,和一個子類SKSpriteNode的,它們具有以下代碼:removeAllChildren與爲self.children中的所有節點發出'removeFromParent'?
for child in children {
child.removeFromParent()
}
爲什麼用這個來代替:
removeAllChildren
?對我而言,removeAllChildren將是明顯的選擇。我知道有人要求父母將所有的孩子都帶走,另一方面是要求所有的孩子將自己從父母身上移開,我想知道我是否缺少一種微妙的東西。
有關詳細信息,請參閱Ray Wenderlich教程'CatNap',它是付費系列教程的一部分。該代碼位於SKSpriteNode子類中的函數中,用於通過刪除所有子項(眼睛,尾部等)並用新節點替換它們來更改節點的外觀。下面是函數:
func wakeUp() {
for child in children {
child.removeFromParent()
}
texture = nil
color = SKColor.clearColor()
let catAwake = SKSpriteNode(fileNamed: "CatWakeUp")!.childNodeWithName("cat_awake")!
catAwake.moveToParent(self)
catAwake.position = CGPoint(x: -30, y: 100)
}
我確實不知道如果removeAllChildren
不可用時,教程編寫的,但removeallChildren
與SpriteKit推出iOS中 7,這樣就不會出現吧。
沒有理由,作者可能只是不知道(或忘記)關於'removeAllChildren'。這在編程中總是會發生,這就是爲什麼我們有代碼評論。 – Sulthan