Почему SKNode () при назначении переменной порождает бесконечную орду врагов? - PullRequest
0 голосов
/ 18 апреля 2020

Итак, я создаю игру, в которой враги пролетают мимо вас и исчезают, когда они d ie или покидают экран, и я также делал кнопку play / pause, и для этого я создал переменную под названием worldNode и присвоил ему SKNode (). Я сделал переменную не внутри функции, а внутри класса GameScene. Затем каждый раз, когда я что-то добавлял, я делал

worldNode.addChild(thing)

, так как это позволяет мне выбирать то, что ставится на паузу и без паузы, без остановки всей игры. Но когда я делаю это с этими строками кода, он порождает всех врагов сразу, немедленно убивая игрока. Этот код взят из функции обновления.

if currentWave.enemies.isEmpty {
            for (index, position) in positions.shuffled().enumerated() {
                let enemy = EnemyNode(type: enemyTypes[enemyType], startPosition: CGPoint(x: enemyStartX, y: position), xOffset: enemyOffsetX * CGFloat(index * 3), moveStraight: true)
                worldNode.addChild(enemy)
            }
        } else {
            for enemy in currentWave.enemies {
                let node =  EnemyNode(type: enemyTypes[enemyType], startPosition: CGPoint(x: enemyStartX, y: positions[enemy.position]), xOffset: enemyOffsetX * enemy.xOffset, moveStraight: enemy.moveStraight)
                worldNode.addChild(node)
            }
        }

только для addChild (узла) это происходит, и я не могу его пропустить, потому что тогда они продолжают летать по экрану. Что бы я сделал, чтобы это исправить?

...