Spritekit, копирует ли существующий узел и инициализирует новый узел сравнимой вычислительной мощностью? - PullRequest
0 голосов
/ 24 апреля 2018

Я новичок в Spritekit (возможно, начинающий программист), сейчас практикуюсь в написании Dodge Bullet.Возник вопрос, сейчас нужно много узлов со схожими свойствами (маркерами), я нашел два способа сделать это

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 голосов
/ 25 апреля 2018

Я забыл, где я это читал и как я это узнал, но помните, что Копирование НАМНОГО быстрее. Я использовал это, и доказал это себе. Настолько, что это хорошо для создания сложных систем частиц и других вещей, которые были бы тяжелыми, если бы просто были созданы.

...