Управление загрузкой CPU


#1

В стартовом контроллере запускается сцена с анимацией из спрайтов.

Загрузка сцены:

    func setupSK() {
        if let view = skView {

            let scene = StartScene(size: self.view.bounds.size)
            scene.backgroundColor = #colorLiteral(red: 0.2588235438, green: 0.7568627596, blue: 0.9686274529, alpha: 1)
            scene.scaleMode = .aspectFill
            
            scene.tapOnCloudInScene = { [self] in
            }
            view.presentScene(scene)
            view.ignoresSiblingOrder = true
            view.showsFPS = false
            view.showsNodeCount = false
        }
    }

Создание и запуск анимации

    func create(nameSprite: String, isRepeated: Bool) {

    textuteAtlas = SKTextureAtlas(named: nameSprite)
    for i in 1...textuteAtlas.textureNames.count {
        if i < 10 {
            let name = nameSprite + "000\(i).png"
            textureArray.append(SKTexture(imageNamed: name))
        } else if i >= 10 && i < 100 {
            let name = nameSprite + "00\(i).png"
            textureArray.append(SKTexture(imageNamed: name))
        } else if i >= 100 {
            let name = nameSprite + "0\(i).png"
            textureArray.append(SKTexture(imageNamed: name))
        }
    }
    
    self.size = CGSize(width: 350, height: 426)
    self.setScale(0.88)
    let animationWithTextures = SKAction.animate(with: textureArray, timePerFrame: perTime)
    
    var repeatCount = SKAction()
    if !isRepeated {
        repeatCount = SKAction.repeatForever(animationWithTextures)
    } else {
        repeatCount = SKAction.repeat(animationWithTextures, count: 1)
    }
    
    self.run(repeatCount)
}

Далее пользователю предлагается перейти на карту по которой бегает персонаж тоже анимации из спрайтов.

Если все работает как описано, то загрузка процессора при работе карты достигает 80% а fps падает до 12

При этом если на главный сцену не добавлять, то при работе карты CPU: - 15% fps 55-60

Переходы на базе NavigationController через segue - show

Вопрос собственно в том можно ли при переходе на карту условно “забыть” про стартовый контроллер и все его содержимое?

NavigationController в принципе не обязателен.