Spritekit,复制现有节点并初始化一个新节点需要具有可比的计算能力吗?

时间:2018-04-24 14:31:00

标签: swift sprite-kit

我是Spritekit初学者(也许是初学者程序员),现在正在练习编写道奇子弹游戏。出现了一个问题,现在需要许多具有相似属性(子弹)的节点,我想出了两种方法

func spawnBullet() {
    let bullet = SKShapeNode(circleOfRadius:30)

    //set other properties here...

    self.addChild(bullet)
}

另一个是:

var bulletNode: SKShapeNode?

func setBulletProperty() {

    let bullet:SKShapeNode? = SKShapeNode(circleOfRadius: 30)

    //set other properties here...

    bulletNode = bullet
}

func spawnBullet() {
    let newBullet = bulletNode.copy() as! SKShapeNode
    self.addChild(newBullet)
}

“在这里设置属性......”可能相当长。所以我的问题是,就计算成本而言,上述两个版本是否使用相似数量的资源?

直观地说,第二个版本的成本更低,因为setBulletProperty只需要调用一次。而copy()在某种程度上比第一版的spawnBullet()容易。

如果它们的成本不同,那么成本是否具有可比性?或者,如果在一秒内添加30个节点,它们的成本会大不相同?

提前谢谢大家

1 个答案:

答案 0 :(得分:0)

我忘了我读到这里的地方,以及我是如何学到这一点的,但请记住,复制速度要快得多。我用它,并证明了自己。这对于制作复杂的粒子系统以及其他简单实例化的东西来说非常有用。