我喜欢做这样的事情:
for i in 0...3 {
let skspritenode\(i) = SKSpriteNode(imageNamed: "Layer_\(i)")
self.addChild(skspritenode\(i))
}
那是行不通的,因为我的 skspritenode(i) 是一个 let 而不是一个字符串 我试过这个:
for i in 0...3 {
let skspritenode = SKSpriteNode(imageNamed: "Layer_\(i)")
self.addchild(skspritenode)
}
这不起作用,因为 skspritenode 已经有一个父节点。
有没有办法在 for 循环中执行此操作,还是我必须分别声明每个 let?先谢谢你
最佳答案
为什么您需要为每个节点命名不同? skspritenode
变量的作用域在 for
循环中,因此下面的代码应该可以正常工作:
for i in 0...3 {
let skspritenode = SKSpriteNode(imageNamed: "Layer_\(i)")
self.addchild(skspritenode)
}
你的观点
which doesn't work because skspritenode already has a parent
不正确,因为您在每次迭代时都创建了新的 SKSpriteNode。
关于swift - 在变量名中使用整数 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51222416/