我是 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/