目前我在Swift的一个项目遇到了一些麻烦。我想知道你是否可以像这样创建一个全新的精灵节点:
Subclass.foo()
其中nodes是一个SKSpriteNodes数组,并且有一个索引号为3的对象。以前,我曾在Java工作,我知道如果你要做这样的事情,它只会传递一个sprite节点变量的引用而不是创建一个全新的精灵节点,但我不确定这是否是swift中发生的事情。
如果你不能用这种方式创建一个新的sprite节点,那么最好的方法是什么(在Java中你只需创建一个新的sprite节点并逐字复制它的所有值)?
答案 0 :(得分:1)
您可以使用此代码
克隆SKSpriteNode
let sprite0 = SKSpriteNode()
let sprite1 = sprite0.copy() as! SKSpriteNode
如果你有一个精灵数组
let sprites: [SKSpriteNode] = [SKSpriteNode(), SKSpriteNode(), SKSpriteNode()]
您可以使用方括号
访问值let aSprite = sprites[0]
无论如何,在使用其他环境的模式/技术之前,我建议您阅读Sprite Kit Programming Guide。如果我们按照预期的方式使用工具,情况往往会变得更容易。