SpriteKit addChild(node: SKNode) 复数?

Posted

技术标签:

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

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

有点像:

addChildren(myNodeABC, myNodeXYZ, myNode123)

【问题讨论】:

不,你必须自己制作 啊,太棒了,@Knight0fDragon。我将尝试使用我收集的扩展程序并在此处发布,让您在完成后轻笑...... 但是不要屏住呼吸,我还有其他事情要做,可能需要几天或几周才能完成。这只是编码时间;) 【参考方案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 规则没有考虑到这些深奥的心灵价值。

以上是关于SpriteKit addChild(node: SKNode) 复数?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式截屏(Swift、SpriteKit)

SpriteKit - SKCameraNode 视差效果?

类型TTreeView.items.add 与 TTreeView.items.addchild有何区别?(10分)

在SpriteKit中产生敌人的波浪

使用 SpriteKit 的 Node 路径粒子效果

SpriteKit改变Node锚点其物理对象位置不正确的解决