我知道SKNode的children属性是只读属性。仍然有一种方法,在迭代孩子时,有可能改变那些孩子的属性吗?
例如:
let background = SKSpriteNode(imageNamed: "Background.jpg")
for child in background.children{
child.position = CGPoint(x: 0, y: 0)
}
答案 0 :(得分:2)
您可以将孩子投射到SKNode
,然后更改位置。
for child in self.children {
if let sprite = child as? SKNode {
sprite.position = CGPoint(x: 0, y: 0)
}
}
答案 1 :(得分:1)
children 属性是readonly,因此您无法使用此属性添加或删除元素(子元素)(有特定方法可以执行此操作)。
但是,您可以修改 background.children 中的元素的某些属性。
for child in background.children as [SKNode] {
child.position = CGPoint(x: 0, y: 0)
}
将 background.children转换为[SKNode] 是安全的,并由documentation保证。