SpriteKit addChild(node:SKNode)复数?

Con*_*sed 2 ios sprite-kit swift

这个命令有多个版本,所以我可以输入要添加的子项列表吗?

有一些像:

addChildren(myNodeABC, myNodeXYZ, myNode123)
Run Code Online (Sandbox Code Playgroud)

Kni*_*gon 5

写一个扩展来做到这一点:(我用Swift 3风格写的,我现在没有XCode可用来验证这是否有效)

extension SKNode
{
    func add(children: SKNode...)  {
        for child in children{
            addChild(child)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

node.add(children:node1,node2,node3)
Run Code Online (Sandbox Code Playgroud)

注意: ...如果您想了解更多关于它们的信息,则称为可变参数:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

如果您想使用更少的行,请执行以下操作:

extension SKNode
{
    func add(children: SKNode...)  {
        children.forEach({addChild($0)});
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这是一个厚颜无耻的提醒,你有时会在SO的规则中不必要地进行评论和反应,但不一定在考虑,关心,同情和爱的"规则"范围内.但我承认,SO规则不允许这些深奥的心灵和灵魂价值观. (3认同)
  • 是的,自C日以来就存在,因为命令行应用程序需要一种方法来接受可变数量的参数 (2认同)