ошибка удаления дочернего узла из родительского узла в spriteKit Swift4 - PullRequest
0 голосов
/ 29 ноября 2018

Я сделал фон параллакса, в GameScene.sks я добавил пустой узел, добавил два спрайта в пустой узел.У меня есть кнопка сброса, когда я нажимаю на нее, мне нужно, чтобы фон был удален и добавлен в его положение (перезапущен), но когда я добавляю в scrollBg.removeAllChildren функцию перезапуска, возникает ошибка, как правильно добавить и удалить дочерние элементы изсцена?

  import SpriteKit
  import GameplayKit



class GameScene: SKScene {

     var player: SKSpriteNode!
     var scrollBg: SKNode!
     var spawnTimer: CFTimeInterval = 0
     let fixedDelta: CFTimeInterval = 1.0/60.0 /* 60 FPS */
     let scrollSpeed: CGFloat = 700
     var sinceTouch: CFTimeInterval = 0


       func resetGameScene() {

        scrollBG.removeAllChildren()
        player.removeAllChildren()
        player.position = CGPoint(x: 590 , y: 690)

        pauseButton()

      }

      override func didMove(to view: SKView) {

        physicsWorld.contactDelegate = self
        player = childNode(withName: "player") as? SKSpriteNode
        scrollBg = childNode(withName: "scrollBG")!

        resetGameScene()
      }


       func scrollWorld() {

         scrollBg.position.y -= scrollSpeed * CGFloat(fixedDelta)

           for ground in scrollBg.children as! [SKSpriteNode] {

         let groundPosition = scrollBg.convert(ground.position, to: 
                                                             self)

            if groundPosition.y <= -ground.size.width  {
               let newPosition = CGPoint(x: groundPosition.x, y: 
                   (self.size.width ) + ground.size.width * 2)

              ground.position = self.convert(newPosition, to: 
                                                          scrollBg)
               }
            }
         }



       override func update(_ currentTime: TimeInterval) {

           sinceTouch+=fixedDelta
           spawnTimer+=fixedDelta
           scrollWorld()
           }







       }
...