swift - Spritekit,复制现有节点和初始化新节点是否需要相当的计算能力?

标签 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 个节点,它们的成本会大不相同?

先谢谢大家

最佳答案

我忘记了我在哪里读到的,以及我是怎么学的,但请记住 Copy 的速度要快得多。我用过它,并向自己证明了这一点。如此之多,以至于它有利于制作复杂的粒子系统和其他如果简单地实例化就会很重的东西。

关于swift - Spritekit,复制现有节点和初始化新节点是否需要相当的计算能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50004275/

相关文章:

ios - 将图像设置为核心数据

swift - 如何在增加 scaleX 水平滚动并启用拖动的同时将标记添加到 ios 图表的中心位置

ios - 触摸时重定向 SKNode SkAction 方向

ios - 如何立即结束声音?

swift - 从 SpriteKit 中的另一个类访问 GameScene() 内的函数不起作用

swift - 如何设置自动布局以使图像占据全屏?

swift - 以编程方式创建的UIButton转到其他VC、Swift

ios - 具有两种不同文本对齐方式的 NSAttributedString

ios - arc4random 函数随机执行两次或三次

objective-c - 什么更快 : '-isKindOfClass:' or '-isEqualToString:' ?