【问题标题】:SpriteKit addChild(node: SKNode) plural?SpriteKit addChild(node: SKNode) 复数?
【发布时间】:2016-11-21 17:07:14
【问题描述】:

这个命令有复数形式,所以我可以输入要添加的子列表吗?

有点像:

addChildren(myNodeABC, myNodeXYZ, myNode123)

【问题讨论】:

  • 不,你必须自己制作
  • 啊,太棒了,@Knight0fDragon。我将尝试使用我收集的扩展程序并在此处发布,让您在完成后轻笑......
  • 但是不要屏住呼吸,我还有其他事情要做,可能需要几天或几周才能完成。这只是编码时间;)

标签: ios swift sprite-kit


【解决方案1】:

写一个扩展来做这件事:(我用 Swift 3 风格写的,我现在没有可用的 XCode 来验证它的工作原理

extension SKNode
{
    func add(children: SKNode...)  {
        for child in children{
            addChild(child)
        }
    }
}

用法:

node.add(children:node1,node2,node3)

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

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

extension SKNode
{
    func add(children: SKNode...)  {
        children.forEach({addChild($0)});
    }
}

【讨论】:

  • 哇。 variadic 非常酷。就像一个即时数组,无需创建一个。
  • 是的,自 C 时代以来就存在,因为命令行应用程序需要一种方法来接受可变数量的参数
  • 你是个传奇!在你最好的时候,你是最好的之一!
  • 这是一个厚颜无耻的提醒,你有时会在 SO 的规则内做出 cmet 并做出不必要的攻击性反应,但不一定在考虑、关怀、同情和爱的“规则”内。但我承认 SO 规则没有考虑到这些深奥的心灵价值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多